Architektura Cassandra & Strategia czynnika replikacji

Spisie treści:

Anonim

Cassandra jest zaprojektowana do obsługi dużych zbiorów danych. Główną funkcją Cassandry jest przechowywanie danych w wielu węzłach bez pojedynczego punktu awarii.

Przyczyną tego rodzaju architektury Cassandry było to, że awaria sprzętu może wystąpić w dowolnym momencie. Dowolny węzeł może być wyłączony. W przypadku awarii można wykorzystać dane przechowywane w innym węźle. W związku z tym Cassandra została zaprojektowana z wykorzystaniem rozproszonej architektury.

Cassandra przechowuje dane w różnych węzłach za pomocą rozproszonej architektury mody peer to peer.

Wszystkie węzły wymieniają się informacjami przy użyciu protokołu Gossip . Plotki to protokół w Cassandrze, za pomocą którego węzły mogą się ze sobą komunikować.

W tym samouczku nauczysz się:

  • Składniki Cassandry
  • Replikacja danych
  • Operacja zapisu
  • Przeczytaj operację

Składniki Cassandry

W Cassandrze są następujące komponenty;

Schemat architektury Cassandry
  • Węzeł

    Węzeł to miejsce, w którym przechowywane są dane. To podstawowy składnik Cassandry.

  • Centrum danych

    Zbiór węzłów nazywany jest centrum danych. Wiele węzłów zalicza się do centrów danych.

  • Grupa

    Klaster to zbiór wielu centrów danych.

  • Dziennik zatwierdzeń

    Każda operacja zapisu jest zapisywana w dzienniku zatwierdzeń. Dziennik zatwierdzeń służy do odzyskiwania po awarii.

  • Tabela pamięci

    Po zapisaniu danych w dzienniku zatwierdzeń, dane są zapisywane w tabeli Mem. Dane są tymczasowo zapisywane w tabeli Mem-table.

  • SSTable

    Gdy tablica Memo osiągnie pewien próg, dane są opróżniane do pliku dyskowego SSTable.

Replikacja danych

Ponieważ może wystąpić problem ze sprzętem lub łącze może zostać wyłączone w dowolnym momencie podczas przetwarzania danych, wymagane jest rozwiązanie zapewniające kopię zapasową, gdy wystąpi problem. Dzięki temu dane są replikowane, aby zapewnić brak pojedynczego punktu awarii.

Cassandra umieszcza repliki danych w różnych węzłach na podstawie tych dwóch czynników.

  • Miejsce umieszczenia następnej repliki jest określane przez strategię replikacji .
  • Natomiast całkowita liczba replik umieszczonych w różnych węzłach jest określana przez współczynnik replikacji .

Jeden współczynnik replikacji oznacza, że ​​istnieje tylko jedna kopia danych, podczas gdy trzy współczynniki replikacji oznaczają, że istnieją trzy kopie danych w trzech różnych węzłach.

Aby upewnić się, że nie ma pojedynczego punktu awarii, współczynnik replikacji musi wynosić trzy.

W Cassandrze istnieją dwa rodzaje strategii replikacji.

SimpleStrategy

SimpleStrategy jest używane, gdy masz tylko jedno centrum danych. SimpleStrategy umieszcza pierwszą replikę w węźle wybranym przez partycjoner. Następnie pozostałe repliki są umieszczane zgodnie z ruchem wskazówek zegara w pierścieniu Node.

Oto obrazowe przedstawienie SimpleStrategy.

NetworkTopologyStrategy

NetworkTopologyStrategy jest używana, gdy masz więcej niż dwa centra danych.

W NetworkTopologyStrategy repliki są ustawiane osobno dla każdego centrum danych. NetworkTopologyStrategy umieszcza repliki w pierścieniu zgodnie z ruchem wskazówek zegara, aż osiągnie pierwszy węzeł w innej szafie.

Ta strategia polega na umieszczaniu replik na różnych stojakach w tym samym centrum danych. Wynika to z tego, że czasami w szafie może wystąpić awaria lub problem. Następnie repliki na innych węzłach mogą dostarczać dane.

Oto graficzne przedstawienie strategii topologii sieci

Operacja zapisu

Koordynator wysyła żądanie zapisu do replik. Jeśli wszystkie repliki działają, otrzymają żądanie zapisu niezależnie od poziomu spójności.

Poziom spójności określa, ile węzłów odpowie z potwierdzeniem sukcesu.

Węzeł odpowie z potwierdzeniem sukcesu, jeśli dane zostaną pomyślnie zapisane w dzienniku zatwierdzeń i memTable.

Na przykład w jednym centrum danych ze współczynnikiem replikacji wynoszącym trzy trzy repliki otrzymają żądanie zapisu. Jeśli poziom spójności wynosi jeden, tylko jedna replika odpowie potwierdzeniem sukcesu, a pozostałe dwie pozostaną nieaktywne.

Załóżmy, że jeśli pozostałe dwie repliki utracą dane z powodu awarii węzłów lub innego problemu, Cassandra sprawi, że wiersz będzie spójny dzięki wbudowanemu mechanizmowi naprawy w Cassandrze.

Tutaj jest wyjaśnione, jak przebiega proces zapisu w Cassandrze,

  1. Kiedy żądanie zapisu przychodzi do węzła, najpierw rejestruje się w dzienniku zatwierdzeń.
  2. Następnie Cassandra zapisuje dane w tablicy memów. Dane zapisane w tablicy mem-table przy każdym żądaniu zapisu są również zapisywane oddzielnie w dzienniku zatwierdzeń. Tablica pamięci to tymczasowo przechowywane dane w pamięci, podczas gdy dziennik zatwierdzania rejestruje rekordy transakcji w celu tworzenia kopii zapasowych.
  3. Gdy tablica pamięci jest pełna, dane są przesyłane do pliku danych SSTable.

Przeczytaj operację

Istnieją trzy typy żądań odczytu, które koordynator wysyła do replik.

  1. Bezpośrednia prośba
  2. Żądanie podsumowania
  3. Przeczytaj żądanie naprawy

Koordynator przesyła zapytanie bezpośrednio do jednej z replik. Następnie koordynator wysyła żądanie skrótu do liczby replik określonej przez poziom spójności i sprawdza, czy zwrócone dane są danymi zaktualizowanymi.

Następnie koordynator wysyła żądanie skrótu do wszystkich pozostałych replik. Jeśli którykolwiek węzeł poda nieaktualną wartość, żądanie naprawy odczytu w tle zaktualizuje te dane. Ten proces nazywa się mechanizmem naprawy odczytu.

Podsumowanie

W tym samouczku wyjaśniono wewnętrzną architekturę Cassandry oraz sposób replikacji, zapisu i odczytu danych Cassandra na różnych etapach. Tutaj również wyjaśnia, w jaki sposób Cassandra utrzymuje poziom spójności podczas całego procesu.