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

Edge for Private Cloud w wersji 4.18.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 replikowania dla każdego klucza przestrzeni Edge określa węzły, na których umieszczane są kopie.

Łączna liczba replik przestrzeni kluczy w klastrze Cassandra jest nazywana współczynnikiem replikacji przestrzeni kluczy. Współczynnik replikacji wynoszący 1 oznacza, że w klastrze Cassandra istnieje tylko 1 kopia każdego wiersza. W przypadku czynnika replikacji 2 mamy 2 kopie każdego wiersza, z których każdy znajduje się na innym węźle. Wszystkie repliki są równie ważne. Nie ma repliki głównej ani głównej.

W systemie produkcyjnym z co najmniej 3 węzłami Cassandra w każdym centrum danych domyślny czynnik replikacji dla przestrzeni kluczy Edge wynosi 3. Zasadniczo czynnik replikacji nie powinien przekraczać liczby węzłów Cassandra w klastrze.

Wykonaj poniższe czynności, aby wyświetlić schemat Cassandra, który pokazuje współczynnik replikacji dla każdego obszaru kluczy Edge:

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

    gdzie $(hostname -i) jest rozwiązywany do adresu IP węzła Cassandra. Możesz też zastąpić $(hostname -i) adresem IP węzła.

W przypadku każdego klucza zobaczysz dane wyjściowe w postaci:

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

W przypadku centrum danych 1, dc-1 domyślny współczynnik replikowania przestrzeni kluczy kms wynosi 3 w przypadku instalacji z 3 węzłami Cassandra.

Jeśli dodasz do klastra dodatkowe węzły Cassandra, domyślny współczynnik replikacji nie ulegnie zmianie.

Jeśli na przykład zwiększysz liczbę węzłów Cassandra do 6, ale pozostawisz współczynnik replikacji na 3, nie zagwarantujesz, że wszystkie węzły Cassandra mają kopie wszystkich danych. Jeśli węzeł przestanie działać, większy współczynnik replikowania oznacza większe prawdopodobieństwo, że dane na tym węźle znajdują się na jednym z pozostałych węzłów. Minusem wyższego współczynnika replikacji jest zwiększone opóźnienie zapisu danych.

Poziom 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 było uznać ją za zakończoną sukcesem. Do różnych przestrzeni kluczy Edge można przypisać różne poziomy spójności.

Podczas łączenia się z Cassandra w celu wykonywania operacji odczytu i zapisu procesor wiadomości i węzły serwera zwykle używają wartości LOCAL_QUORUM w Cassandra, aby określić poziom spójności dla przestrzeni kluczy. Niektóre przestrzenie kluczy są jednak zdefiniowane tak, aby używać poziomu spójności 1.

Wartość LOCAL_QUORUM dla centrum danych oblicza się w ten sposób:

LOCAL_QUORUM = (replication_factor/2) + 1

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

Gdy LOCAL_QUORUM = 2, co najmniej 2 z 3 węzłów Cassandra w centrum danych musi odpowiedzieć na operację odczytu/zapisu, aby operacja się powiodła. W przypadku klastra Cassandra z 3 węzłami klaster może tolerować wyłączenie 1 węzła na centrum danych.

Określając poziom spójności jako LOCAL_QUORUM, Edge eliminuje opóźnienia wymagane do weryfikowania operacji w wielu centrach danych. Jeśli przestrzeń kluczy używa wartości QUORUM w Cassandra jako poziomu spójności, operacje odczytu/zapisu musiałyby być weryfikowane we wszystkich centrach danych.

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

  1. Zaloguj się na węźle Message Processor.
  2. Przejdź do katalogu /opt/apigee/edge-message-processor/conf:
    > cd /opt/apigee/edge-message-processor/conf
  3. Aby zachować spójność zapisów:
    > grep -ri "write.consistencylevel" *
  4. Spójność odczytu:
    > grep -ri "read.consistencylevel" *
  5. Zaloguj się na 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.

Dodanie do klastra dodatkowych węzłów Cassandra nie ma wpływu na poziom spójności.