Informacje o współczynniku replikacji i spójności Cassandra

Edge for Private Cloud wer. 4.16.09

Informacje o współczynniku replikacji Cassandra

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

Łączna liczba replik przestrzeni kluczy w klastrze Cassandra jest określana jako współczynnik replikacji przestrzeni kluczy. Współczynnik replikacji 1 oznacza, że w klastrze Cassandra jest tylko 1 kopia każdego wiersza. Współczynnik replikacji równy 2 oznacza, że istnieją 2 kopie każdego wiersza, 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 z co najmniej 3 węzłami Cassandra w każdym centrum danych domyślny współczynnik replikacji przestrzeni kluczy brzegowej wynosi 3. Zgodnie z ogólną regułą współczynnik replikacji nie powinien przekraczać liczby węzłów Cassandra w klastrze.

Aby wyświetlić schemat Cassandra, który pokazuje współczynnik replikacji dla każdej krawędzi kluczy, wykonaj poniższe czynności:

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

    Gdzie $(nazwa_hosta -i) wskazuje adres IP węzła Cassandra. Możesz też zastąpić ciąg $(nazwa hosta -i) adresem IP węzła.

Dane wyjściowe każdej przestrzeni kluczy mają postać:

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

Jak widać, w przypadku centrum danych 1 (dc-1) domyślny współczynnik replikacji przestrzeni kluczy kms wynosi 3 w przypadku instalacji z 3 węzłami Cassandra.

Jeśli dodasz do klastra kolejne węzły Cassandra, nie wpłynie to na domyślny współczynnik replikacji. Jeśli jednak zdecydujesz się zwiększyć współczynnik replikacji, skontaktuj się z Apigee.

Jeśli na przykład zwiększysz liczbę węzłów Cassandra do 6, ale pozostawisz współczynnik replikacji na 3, nie masz pewności, że wszystkie węzły Cassandra będą miały kopię wszystkich danych. Jeśli węzeł ulegnie awarii, wyższy współczynnik replikacji oznacza większe prawdopodobieństwo, że dane w tym węźle istnieją w jednym z pozostałych węzłów. Wadą wyższego współczynnika replikacji jest dłuższy czas oczekiwania na zapis 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ą potwierdzić operację odczytu lub zapisu, aby można ją było uznać za udaną. Do różnych przestrzeni kluczy Edge można przypisywać różne poziomy spójności.

Podczas nawiązywania połączenia z usługą Cassandra w celu operacji odczytu i zapisu węzły podmiotu przetwarzającego wiadomości i serwera zarządzania zwykle używają wartości Cassandra LOCAL_QUORUM, aby określić poziom spójności przestrzeni kluczy. Niektóre przestrzenie kluczy są jednak zdefiniowane tak, aby korzystać z poziomu spójności 1.

Obliczenie wartości LOCAL_QUORUM dla centrum danych:

LOCAL_QUORUM = (replication_factor/2) + 1 

Jak opisano powyżej, domyślny współczynnik replikacji w środowisku produkcyjnym brzegowym z 3 węzłami Cassandra wynosi 3. Dlatego domyślna wartość LOCAL_QUORUM = (3/2) +1 = 2 (wartość jest zaokrąglana w dół do liczby całkowitej).

Przy wartości LOCAL_QUORUM = 2 co najmniej dwa z 3 węzłów Cassandra w centrum danych muszą odpowiadać na operację odczytu/zapisu, aby operacja się powiodła. W przypadku klastra Cassandra z 3 węzłami klaster może tolerować niedostępność 1 węzła na centrum danych.

Dzięki określeniu poziomu spójności LOCAL_QUORUM Edge eliminuje wymagane opóźnienia dzięki weryfikowaniu operacji w wielu centrach danych. Jeśli przestrzeń kluczy używała wartości QUORUM Cassandra jako poziomu spójności, operacje odczytu i zapisu musiałyby być weryfikowane we wszystkich centrach danych.

Aby wyświetlić poziom spójności używany przez węzły przetwarzania wiadomości 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 zachować spójność zapisu:
    > grep -ri "write.consistencylevel" *
  4. 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 kolejne węzły Cassandra, poziom spójności nie ulegnie zmianie. Jeśli jednak zdecydujesz, że chcesz zmienić poziom spójności, skontaktuj się z zespołem Apigee.