Cassandra Architecture i współczynnik replikacji
Cassandra jest przeznaczony do obsługi Big Data. CassandraGłówną cechą jest przechowywanie danych w wielu węzłach bez pojedynczego punktu awarii.
Powód tego rodzaju CassandraArchitektura 's polegała na tym, że awaria sprzętu może wystąpić w dowolnym momencie. Każdy węzeł może być wyłączony. W przypadku awarii można użyć danych przechowywanych w innym węźle. Stąd, Cassandra został zaprojektowany z uwzględnieniem rozproszonej architektury.
Cassandra przechowuje dane na różnych węzłach za pomocą rozproszonej architektury peer-to-peer.
Wszystkie węzły wymieniają między sobą informacje za pomocą Protokół plotek. Plotka jest protokołem Cassandra za pomocą którego węzły mogą się ze sobą komunikować.
Części Cassandra Architektura
W skład zestawu wchodzą następujące komponenty: Cassandra Archistruktura:
Node
Węzeł to miejsce, w którym przechowywane są dane. Jest podstawowym składnikiem Cassandra.
Centrum danych
Zbiór węzłów nazywany jest centrum danych. Wiele węzłów zalicza się do centrów danych.
Cluster
Klaster to zbiór wielu centrów danych.
Dziennik zatwierdzeń
Każda operacja zapisu jest zapisywana w Commit Log. Commit log jest używany do odzyskiwania po awarii.
Tabela pamięci
Po zapisaniu danych w dzienniku zatwierdzeń, dane są zapisywane w tabeli Mem. Dane są tymczasowo zapisywane w tablicy Mem.
SSTable
Gdy tabela Mem osiągnie określony próg, dane są przesyłane do pliku dyskowego SSTable.
Replikacja danych w Cassandra
Ponieważ w dowolnym momencie przetwarzania danych może wystąpić problem sprzętowy lub łącze może nie działać, wymagane jest rozwiązanie zapewniające kopię zapasową w przypadku wystąpienia problemu. Dane są więc replikowane, aby wyeliminować pojedynczy punkt awarii.
Cassandra umieszcza repliki danych w różnych węzłach w oparciu o te dwa czynniki.
- O tym, gdzie umieścić kolejną replikę decyduje Strategia replikacji.
- Chociaż 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, natomiast trzy współczynniki replikacji oznaczają, że istnieją trzy kopie danych w trzech różnych węzłach.
Aby zapewnić brak pojedynczego punktu awarii, współczynnik replikacji musi wynosić trzy.
Istnieją dwa rodzaje strategii replikacji Cassandra.
Prosta strategia w Cassandra
Prosta strategia jest używany, gdy masz tylko jedno centrum danych. SimpleStrategy umieszcza pierwszą replikę na węźle wybranym przez partycjonera. Następnie pozostałe repliki są umieszczane zgodnie z ruchem wskazówek zegara w pierścieniu węzłów.
Oto obrazowe przedstawienie SimpleStrategy:
SiećTopologiaStrategia w Cassandra
SiećTopologiaStrategia jest używany, gdy masz więcej niż dwa centra danych. W NetworkTopologyStrategy repliki są ustawiane dla każdego centrum danych oddzielnie. NetworkTopologyStrategy umieszcza repliki w kierunku zgodnym z ruchem wskazówek zegara w pierścieniu, aż dotrze do pierwszego węzła w innej szafie. Ta strategia próbuje umieścić repliki na różnych szafach w tym samym centrum danych.
Dzieje się tak dlatego, że czasami w szafie może wystąpić awaria lub problem. Następnie repliki w innych węzłach mogą dostarczać dane.
Oto obrazowe przedstawienie strategii topologii sieci:
Pisać Operacja w Cassandra
Koordynator wysyła żądanie zapisu do replik. Jeśli wszystkie repliki zostaną uruchomione, otrzymają żądanie zapisu niezależnie od poziomu spójności.
Poziom spójności określa, ile węzłów odpowie potwierdzeniem powodzenia.
Węzeł odpowie potwierdzeniem powodzenia, jeśli dane zostaną pomyślnie zapisane w dzienniku zatwierdzeń i memTabela.
Na przykład w pojedynczym centrum danych ze współczynnikiem replikacji równym trzy żądanie zapisu otrzymają trzy repliki. Jeśli poziom spójności wynosi jeden, tylko jedna replika odpowie z potwierdzeniem powodzenia, a pozostałe dwie pozostaną uśpione.
Załóżmy, że pozostałe dwie repliki stracą dane z powodu awarii węzłów lub innego problemu: Cassandra sprawi, że wiersz będzie spójny dzięki wbudowanemu mechanizmowi naprawczemu Cassandra.
Tutaj wyjaśniono, w jaki sposób zachodzi proces zapisu Cassandra,
- Gdy żądanie zapisu przychodzi do węzła, najpierw rejestruje się ono w dzienniku zatwierdzeń.
- Następnie Cassandra zapisuje dane w tablicy pamięci. Dane zapisywane w tablicy pamięci przy każdym żądaniu zapisu są również zapisywane oddzielnie w dzienniku zatwierdzeń. Tabela Mem to tymczasowo przechowywane dane w pamięci, podczas gdy dziennik zatwierdzania rejestruje zapisy transakcji w celu utworzenia kopii zapasowej.
- Gdy tabela memów jest pełna, dane są opróżniane do pliku danych SSTable.
Czytaj Operacja w Cassandra
Istnieją trzy typy żądań odczytu, które koordynator wysyła do replik.
- Bezpośrednia prośba
- Żądanie podsumowania
- Przeczytaj prośbę o naprawę
Koordynator wysyła zapytanie bezpośrednio do jednej z replik. Następnie koordynator wysyła żądanie podsumowania 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 podsumowania do wszystkich pozostałych replik. Jeśli jakikolwiek węzeł poda nieaktualną wartość, żądanie naprawy odczytu w tle zaktualizuje te dane. Proces ten nazywany jest mechanizmem naprawy odczytu.
Podsumowanie
- W tym samouczku wyjaśniono Cassandra architektura wewnętrzna i jak Cassandra replikuje, zapisuje i odczytuje dane na różnych etapach.
- Tutaj również wyjaśniono, jak to zrobić Cassandra utrzymuje poziom spójności w całym procesie.
- Części Cassandra Archiarchitektura: węzeł, centrum danych, Cluster, Dziennik zatwierdzeń, tabela Mem, SSTable
- Jeden współczynnik replikacji oznacza, że istnieje tylko jedna kopia danych, natomiast trzy współczynniki replikacji oznaczają, że istnieją trzy kopie danych w trzech różnych węzłach.
- SimpleStrategy jest używane, gdy masz tylko jedno centrum danych.
- NetworkTopologyStrategy jest używana, jeśli masz więcej niż dwa centra danych.