Drzewa Merkle (aka hash drzew) są używane do synchronizacji danych zarówno w "Cassandra" & "Dynamo".Synchronizacja danych Drzewa Merkle Fałszywie Pozytywne
jak w przypadku innych funkcji mieszającej, istnieje prawdopodobieństwo, że poszczególne dane mogą mieć taką samą wartość skrótu:
istnieje X i Y, gdy [! Y = X], ale [mieszania (x) = mieszania (y)]
Wraz z narastaniem "dużych danych" w NOSQL, prawdopodobieństwo pojawienia się takich danych staje się większe.
Oznacza to, że w miarę jak zbiory danych stają się większe, prawie pewne jest, że różne węzły w drzewie Merkle przyniosą ten sam hash rodziców.
Przy takiej okazji, kiedy dwie różne maszyny w gromadzie przemierzają swoje drzewa merkle, otrzymają fałszywy alarm, że ich dane są spójne. Jeśli do tej gałęzi drzewa nie zostaną zapisane żadne dane, urządzenia pozostaną niezsynchronizowane na zawsze.
Jak to się dzieje?
Czy istnieje inny mechanizm synchronizacji, który ostatecznie mógłby się tutaj uruchomić? A może te bazy danych polegają po prostu na tym, że funkcje mieszające są równomiernie rozprowadzane? Przypominam, że w przypadku Cassandry większość użytkowników używa domyślnej funkcji skrótu, która prawdopodobnie nie ma optymalnej dystrybucji. – eshalev
Nie, większość systemów polega na tym, że funkcje mieszające są równomiernie rozproszone (opierają się na [SUHA] (http://en.wikipedia.org/wiki/SUHA_ (computer_science)) i bardzo wątpię, że domyślna funkcja skrótu Cassandra nie używa SUHA – kokx
W jaki sposób Kasandra może zakładać równomierną dystrybucję danych, które nie są ich? Użytkownik zawsze może zapisać dane, które nie działają dobrze z funkcją haszowania – eshalev