DCache рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдердо

DCache рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ, рдореИрдВ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХреБрдЫ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдореМрдЬреВрджрд╛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓реЛрдб рдХреЛ рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╡рд┐рддрд░рд┐рдд рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╛рд░реНрдп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЗрдЦрди рдЪрд░рдг рдореЗрдВ рдХрд┐рдП рдЧрдП рдирд┐рд░реНрдгрдп рд╕реЗ рдпрд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЖрдорддреМрд░ рдкрд░, рдПрдХ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд╛рде рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЗ рдЕрдВрддрд┐рдо рдЕрд╡рдХрд╛рд╢ рдпрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рдпреЛрдЧ рдХреЗ рдирд╡реАрдирддрдо рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рддрд╕реНрд╡реАрд░реЗрдВ рд╣реЛрдВред рдпрд╣ рддрдереНрдп рд╣рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрдп рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрдерд╛рд╕рдВрднрд╡ рдиреЛрдбреНрд╕ рдкрд░ рдмрд┐рдЦреЗрд░ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд╕рднреА рдиреЛрдбреНрд╕ рдореЗрдВ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдФрд░ рд╕рдорд╛рди рдореБрдХреНрдд рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╣реИ, рддреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рджреБрд░реНрд▓рдн рд╣реИред рдирдИ, рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде, рд╕рд░реНрд╡рд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рдЬрдм рдореБрдХреНрдд рд╕реНрдерд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдЧрд╛рд░ рдкрд░ рд╣реИред

DCache рдореЗрдВ, рдпрд╣ рджреЛ рддрдВрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдирдП рдиреЛрдбреНрд╕ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдФрд░ рдбреЗрдЯрд╛ рд░рд┐рдЕрд▓рд╛рдпрд▓реЗрд╢рди (рд░реАрдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ) рдХрд░рддреЗ рд╕рдордп рднрд╛рд░рд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рддрд░рдг рдХреЛ рдЦрд╛рддреЗ рдореЗрдВ рдореБрдХреНрдд рд╕реНрдерд╛рди (рднрд╛рд░рд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рддрд░рдг) рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рдПрдХ рднрд╛рд░рд┐рдд рдордирдорд╛рдирд╛ рд╡рд┐рддрд░рдг рдХреИрд╕реЗ рдЦрд╛рддрд╛ рдореБрдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ:

рдХреЛрдб рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

public Pool selectWritePool(Pool[] pools) { double[] weights = new double[pools.length]; long totalFree = 0; for (Pool pool:pools) { totalFree += pool.getFree(); } int i = 0; for (Pool pool:pools) { weights[i] = (double) pool.getFree() / totalFree; i++; } return pools[i]; } private final Random rand = new Random(); public static int weightetRandom(double[]weights, Random r) { double selection = r.nextDouble(); double total = 0; int i = 0; for (i = 0; (i < weights.length) && (total <= selection); i++) { total += weights[i]; } return i - 1; } 


рдпрд╣ рддрдВрддреНрд░ рдЖрдкрдХреЛ рд╕рднреА рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рд╡рд╛рд▓реЗ рд▓реЛрдЧ - рдЕрдзрд┐рдХ рдмрд╛рд░ред рд╕рдВрднрд╛рд╡реНрдп рдирдореВрдирд╛рдХрд░рдг рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдВрддрд░рд┐рдХ рдкреБрди: рд╕рдВрддреБрд▓рди рдХрдорд╛рдВрдб рд╕рд░реНрд╡рд░ рд▓реЛрдб рдХреЛ рднреА рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдгрдирд╛ рдХреБрд▓ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ:
рд▓реЛрдб = FreeN / TotalN

рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдиреЗ рдЦреБрдж рдХреЛ рдпреБрджреНрдз рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд╛рдмрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/In197540/


All Articles