2013-06-20 8 views
8

według dokumentacji elasticsearch, zasadę poziomu write_consistency kworum:Undestanding z write_consistency i kworum zasadę Elasticsearch

bakteriami (> Repliki/2 + 1)

Stosując ES 0.19.10, w sposób konfiguracja z 16 odłamki/3 repliki otrzymamy 16 główne kawałki 48 repliki

przebiegu 2 węzły, będziemy mieli 16 (pierwotną) + 16 (repliki) = 32 czynne odłamki.

Aby zasada kworum została spełniona, kworum> 48/2 + 1 = 25 aktywnych odłamków.

Teraz, testowanie tego dowodzi inaczej, poziom write_cististency nie jest spełniony (czasy operacji zapisu), dopóki nie uruchomimy 3 węzłów. Ten rodzaj ma sens, ponieważ moglibyśmy uzyskać rozdzielony mózg między grupami po 2 węzły w tej konfiguracji, ale nie bardzo rozumiem, jak ta zasada ma działać? Czy używam tutaj niewłaściwych numerów?

+0

Czujesz, że masz ustawioną konsystencję dla wszystkich. Sprawdź, czy twoje zapisy mają "konsystencję": wszystkie – chaos

+0

^Mam na myśli na każde indywidualne żądanie indeksu. – chaos

Odpowiedz

5

Ilość Podstawowa odłamek w rzeczywistości nie ma znaczenia, więc mam zamiar wymienić go N.

Jeśli masz indeks z N odłamki i 2 replik istnieją trzy odłamki w grupie replikacji. Oznacza to, że kworum wynosi dwa: podstawowy plus jedna z replik. Potrzebujesz dwóch aktywnych odłamków, co zwykle oznacza dwie aktywne maszyny, aby spełnić parametr spójności zapisu

Indeks z odłamkami N i 3 replikami zawiera cztery odłamki w grupie replikacji (pierwotna + 3 repliki), więc kworum wynosi trzy .

Indeks z odłamkami N i 1 repliką jest szczególnym przypadkiem, ponieważ tak naprawdę nie można mieć kworum z tylko dwoma odłamkami. Przy użyciu tylko jednej repliki, Elasticsearch wymaga tylko jednego aktywnego fragmentu (na przykład podstawowego), więc ustawienie quorum jest identyczne z ustawieniem one dla tego konkretnego ustawienia.

Kilka uwag:

  • 0,19 jest bardzo stary, należy zdecydowanie, absolutnie, pozytywnie uaktualnienia. Nie mogę nawet policzyć, ile poprawek i ulepszeń wydajności zostało dodanych od tego wydania :)

  • Spisanie spójności jest jedynie sprawdzeniem bramy. Przed wykonaniem żądania indeksowania węzeł wykona badanie słomy, aby sprawdzić, czy spełniona jest wartość write_consistency. Jeśli tak, spróbuje wykonać indeks i przesłać replikację. To nie gwarantuje, że repliki się powiodą ... mogą łatwo zawieść, a zobaczysz to w odpowiedzi. Jest to po prostu mechanizm zatrzymujący proces indeksowania, jeśli nie jest spełnione ustawienie spójności.

  • "W pełni replikowana" konfiguracja z dwoma węzłami to 1 podstawowy fragment + 1 replika. Każdy węzeł ma pełny zestaw danych. Nie ma powodu, aby mieć więcej replik, ponieważ ES odmawia umieszczenia kopii tych samych danych na tym samym komputerze (nie ma sensu, nie pomaga HA). Brak możliwości indeksowania jest tylko efektem ubocznym spójności zapisu, ale wskazuje na większy problem z konfiguracją :)

Powiązane problemy