Pogledajte određenu poruku
Staro 25. 03. 2010.   #6
User
novi član
Na probnom radu
 
Avatar User
 
Datum učlanjenja: 04.11.2006
Lokacija: Beograd
Poruke: 22
Hvala: 5
9 "Hvala" u 5 poruka
User is on a distinguished road
Default

Napisao sam mali skript i istestirao 3 metoda:

1. Flexihash sa crc32
2. Flexihash sa md5
3. $item % count ($servers) ["plain"]

Pocetno stanje: 5 servera i 10001 element, a nakon toga dodao 1 server i uporedio nizove:

Prvi broj je broj elemenata koji se ne nalaze na trazenom serveru nakon promene
Drugi broj predstavlja prethodni broj elemenata na serveru
Treci broj predstavlja novi broj elemenata na serveru

server[0]['crc32']: 0 [2214 - 1728]
server[0]['md5']: 0 [2019 - 1649]
server[0]['plain']: 1333 [2001 - 1667]

server[1]['crc32']: 0 [1701 - 1283]
server[1]['md5']: 0 [1731 - 1387]
server[1]['plain']: 1333 [2000 - 1667]

server[2]['crc32']: 0 [1548 - 1434]
server[2]['md5']: 0 [1983 - 1726]
server[2]['plain']: 1333 [2000 - 1667]

server[3]['crc32']: 0 [2888 - 2530]
server[3]['md5']: 30 [1972 - 1612]
server[3]['plain']: 1333 [2000 - 1667]

server[4]['crc32']: 0 [1650 - 1476]
server[4]['md5']: 0 [2296 - 2091]
server[4]['plain']: 1333 [2000 - 1667]

server[5]['crc32']: 1550 [0 - 1550]
server[5]['md5']: 1536 [0 - 1536]
server[5]['plain']: 1666 [0 - 1666]

Jedino je md5 hash imao kiks nakon promene i to na trecem serveru (nedostaje 30 elemenata).
Zakljucak je da sistem funkcionise onako kako se ocekuje.

Potom sam izbacio server br 4 i evo kako je Flexihash balansirao (u odnosu na situaciju sa 6 servera):

server[0]['crc32']: 937 [1728 - 2665]
server[0]['md5']: 651 [1649 - 2300]

server[1]['crc32']: 25 [1283 - 1308]
server[1]['md5']: 338 [1387 - 1725]

server[2]['crc32']: 212 [1434 - 1646]
server[2]['md5']: 493 [1726 - 2219]

server[3]['crc32']: 76 [2530 - 2606]
server[3]['md5']: 244 [1612 - 1856]

server[5]['crc32']: 226 [1550 - 1776]
server[5]['md5']: 365 [1536 - 1901]
User je offline   Odgovorite uz citat
"Hvala" User za poruku: