Współczynnik replikacji Cassandra i poziom spójności

Edge for Private Cloud w wersji 4.19.01

Informacje o współczynniku replikacji Cassandra

System Cassandra przechowuje repliki danych w wielu węzłach, aby zapewnić niezawodność i odporność na awarie. Strategia replikacji każdej przestrzeni kluczy Edge określa węzły, w których są repliki umieszczonego tekstu.

Łączna liczba replik przestrzeni kluczy w klastrze Cassandra jest nazywana współczynnika replikacji spacji. Współczynnik replikacji wynoszący 1 oznacza, że istnieje tylko jeden każdego wiersza w gromadzie Cassandra. Współczynnik replikacji wynoszący 2 oznacza, że mamy 2 i z których każda znajduje się w innym węźle. Wszystkie repliki są tak samo ważne; nie ma repliki podstawowej ani głównej.

W systemie produkcyjnym, w którym w każdym centrum danych znajdują się co najmniej trzy węzły Cassandra, domyślna wartość współczynnik replikacji przestrzeni kluczy Edge wynosi 3. Zasadniczo współczynnik replikacji nie powinna przekraczać liczby węzłów Cassandra w klastrze.

Wykonaj poniższą procedurę, aby wyświetlić schemat Cassandra, który pokazuje współczynnik replikacji dla każdego obszaru klawiszy Edge:

  1. Zaloguj się w węźle Cassandra.
  2. Uruchom to polecenie:
    /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    Gdzie $(hostname -i) odpowiada adresowi IP węzła Cassandra. Lub Ty może zastąpić $(hostname -i) adresem IP węzła.

W przypadku każdej przestrzeni klawiszy zostaną wyświetlone dane wyjściowe w postaci:

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

Widać, że dla centrum danych 1, dc-1, domyślny współczynnik replikacji kms to trzy klawisze w miejscu z instalacją z 3 węzłami Cassandra.

Jeśli dodasz do klastra dodatkowe węzły Cassandra, domyślny współczynnik replikacji nie będzie dotkniętych problemem.

Jeśli na przykład zwiększysz liczbę węzłów Cassandra do 6, ale pozostawisz replikację nie gwarantuje, że wszystkie węzły Cassandra mają kopie wszystkich danych. Jeśli jeśli dojdzie do awarii węzła, wyższy współczynnik replikacji oznacza większe prawdopodobieństwo, że dane w danym węźle istnieje w jednym z pozostałych węzłów. Wadą wyższego współczynnika replikacji jest i opóźnienia w zapisach danych.

Informacje o poziomie spójności Cassandra

Poziom spójności Cassandra jest zdefiniowany jako minimalna liczba węzłów Cassandra, które muszą musi potwierdzić operację odczytu lub zapisu, zanim będzie można ją uznać za udaną. Do różnych przestrzeni klawiszy Edge można przypisać różne poziomy spójności.

Podczas łączenia się z Cassandra w celu obsługi operacji odczytu i zapisu, procesora wiadomości i zarządzania Węzły serwera zwykle używają wartości Cassandra LOCAL_QUORUM do określ poziom spójności przestrzeni kluczy. Niektóre przestrzenie klawiszy są jednak tak zdefiniowane, 1.

Wartość LOCAL_QUORUM dla centrum danych jest obliczana w ten sposób:

LOCAL_QUORUM = (replication_factor/2) + 1

Jak opisano powyżej, domyślny współczynnik replikacji dla środowiska produkcyjnego Edge z trzy węzły Cassandra to trzy. Dlatego domyślna wartość LOCAL_QUORUM = (3/2) +1 = 2 (wartość jest zaokrąglana w dół do liczby całkowitej).

Jeśli LOCAL_QUORUM = 2, co najmniej 2 z 3 węzłów Cassandra w danych są uwzględniane musi odpowiedzieć na operację odczytu/zapisu, aby operacja została wykonana. Dla 3 węzłów Klaster Cassandra może więc tolerować niedziałający 1 węzeł na centrum danych.

Określając poziom spójności na LOCAL_QUORUM, Edge pozwala uniknąć opóźnień. wymagane przez walidację operacji na wielu centrach danych. Jeśli w kombinacji klawiszy o nazwie Cassandra pojawia się QUORUM jako poziom spójności, operacje odczytu/zapisu to są weryfikowane we wszystkich centrach danych.

Aby sprawdzić poziom spójności używany przez węzły procesora komunikatów brzegowych lub serwera zarządzania:

  1. Zaloguj się w węźle procesora wiadomości.
  2. Przejdź do katalogu /opt/apigee/edge-message-processor/conf:
    cd /opt/apigee/edge-message-processor/conf
  3. Aby zapewnić spójność zapisu:
    grep -ri "write.consistencylevel" *
  4. Aby zapewnić spójność odczytu:
    grep -ri "read.consistencylevel" *
  5. Zaloguj się w węźle serwera zarządzania.
  6. Przejdź do katalogu /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  7. Powtórz kroki 3 i 4.

Jeśli dodasz do klastra dodatkowe węzły Cassandra, nie wpłynie to na poziom spójności.