2010-02-24 9 views
10

Z pewnością można uruchomić klaster z jednym węzłem, ale chciałbym uzyskać pewien poziom odporności na błędy.Czy absolutnie potrzebuję minimum 3 węzłów/serwerów dla klastra Cassandra lub czy 2 będzie wystarczające?

Obecnie mogę sobie pozwolić na dzierżawę dwóch serwerów (8GB RAM, private VLAN @ 1GigE), ale nie 3.

Moje zrozumienie jest, że 3 węzły to minimum potrzebne do klastra Cassandry, ponieważ nie ma możliwości większość między 2 węzły, a do rozstrzygnięcia konfliktów dotyczących wersji wymagana jest większość. Och, czekaj, czy ja myślę o "wektorowych zegarach" i Riaku? Ack! Cassandra używa sygnatur czasowych do rozwiązywania konfliktów.

Dla 2 węzłów, jaka jest zalecana strategia odczytu/zapisu? Generalnie powinienem pisać do WSZYSTKICH (obu) węzłów i czytać z JEDNA (N = 2; W = N/2 + 1; W = 2/2 + 1 = 2)? Cassandra użyje funkcji aluzja-jak zwykle, nawet dla 2 węzłów, tak?

Te 2 serwery znajdują się w tym samym centrum danych FWIW.

Dzięki!

Odpowiedz

18

Jeśli potrzebujesz dostępności w systemie RF = 2, klasterize = 2, nie możesz użyć opcji ALL lub nie będziesz w stanie pisać, gdy węzeł ulegnie awarii.

Dlatego ludzie zalecają 3 węzły zamiast 2, ponieważ wtedy można robić kworum czyta + zapisy i nadal mają zarówno silną konsystencję, jak i dostępność, jeśli pojedynczy węzeł przestanie działać.

Tylko z 2 węzłami można wybrać, czy chce się uzyskać silną konsystencję (pisać z ALL), czy dostępność w przypadku awarii pojedynczego węzła (napisać JEDNYM), ale nie jednocześnie. Oczywiście, jeśli napiszesz z JEDNYM kassandrą, zrobisz aluzję do przekazania, tak jak jest to konieczne, aby ostatecznie stała.

+0

Czy to nadal jest prawidłowe? Wydaje się, że znaczenie "Poziom Konsystencji JEDNYM" w Twojej odpowiedzi jest bardziej podobne do poziomu spójności DOWOLNEGO na obecnych wersjach kassandra. Zakładam, że KAŻDY został w pewnym momencie rozwidlony z JEDNYM? –

+0

Gdy liczba węzłów jest równa liczbie posiadanych replik, JEDEN i KAŻDY są równoważne. – jbellis

Powiązane problemy