Cassandra je navrhnutá na spracovanie veľkých dát. Hlavnou vlastnosťou Cassandry je ukladanie údajov do viacerých uzlov bez jediného bodu zlyhania.
Dôvodom tohto typu architektúry Cassandry bolo, že k zlyhaniu hardvéru môže dôjsť kedykoľvek. Akýkoľvek uzol môže byť dole. V prípade poruchy je možné použiť dáta uložené v inom uzle. Preto je Cassandra navrhnutá so svojou distribuovanou architektúrou.
Cassandra ukladá údaje na rôznych uzloch pomocou distribuovanej módnej architektúry peer to peer.
Všetky uzly si navzájom vymieňajú informácie pomocou protokolu Gossip . Klebety sú protokolom v Cassandre, pomocou ktorého môžu uzly navzájom komunikovať.
V tomto návode sa naučíte
- Súčasti Cassandry
- Replikácia údajov
- Operácia zápisu
- Prečítajte si operáciu
Súčasti Cassandry
V Cassandre sú nasledujúce komponenty;
- Uzol
Uzol je miesto, kde sú uložené údaje. Je základnou zložkou Cassandry.
- Dátové centrum
Zbierka uzlov sa nazýva dátové centrum. Mnoho uzlov je kategorizovaných ako dátové centrum.
- Klaster
Klaster je súborom mnohých dátových centier.
- Commit Log
Každá operácia zápisu sa zapíše do Commit Log. Denník potvrdenia sa používa na zotavenie po zlyhaní.
- Mem-tabuľka
Po zapísaní údajov do protokolu Commit sa údaje zapíšu do Mem-tabuľky. Dáta sa dočasne zapisujú do Mem-tabuľky.
- SSTable
Keď Mem-tabuľka dosiahne určitú hranicu, údaje sa vyprázdnia do súboru na disku SSTable.
Replikácia údajov
Pretože môže dôjsť k problému s hardvérom alebo môže dôjsť k prerušeniu spojenia, kedykoľvek počas procesu spracovania údajov, je potrebné riešenie, ktoré poskytne zálohu, keď sa vyskytne problém. Dáta sa teda replikujú, aby sa zaistil jediný bod zlyhania.
Cassandra umiestňuje repliky údajov na rôzne uzly na základe týchto dvoch faktorov.
- Kam umiestniť ďalšiu repliku určuje stratégia replikácie .
- Zatiaľ čo celkový počet replík umiestnených na rôznych uzloch je určený faktorom replikácie .
Jeden faktor replikácie znamená, že existuje iba jedna kópia údajov, zatiaľ čo tri faktory replikácie znamenajú, že existujú tri kópie údajov v troch rôznych uzloch.
Aby sa zabezpečilo, že neexistuje jediný bod zlyhania, musia byť replikačné faktory tri.
V Cassandre existujú dva druhy replikačných stratégií.
SimpleStrategy
SimpleStrategy sa používa, keď máte iba jedno dátové centrum. SimpleStrategy umiestni prvú repliku do uzla vybraného oddielom. Potom sa zvyšné repliky umiestnia v smere hodinových ručičiek do uzla.
Tu je obrázkové znázornenie SimpleStrategy.
NetworkTopologyStrategy
NetworkTopologyStrategy sa používa, ak máte viac ako dve dátové centrá.
V NetworkTopologyStrategy sú repliky nastavené pre každé dátové centrum zvlášť. NetworkTopologyStrategy umiestňuje repliky v kruhu v smere hodinových ručičiek, kým nedosiahne prvý uzol v inom stojane.
Táto stratégia sa pokúša umiestniť repliky na rôzne stojany v rovnakom dátovom centre. Je to z dôvodu, že v stojane niekedy môže dôjsť k poruche alebo problému. Potom repliky na iných uzloch môžu poskytnúť údaje.
Tu je obrazové znázornenie stratégie topológie siete
Operácia zápisu
Koordinátor odošle žiadosť o zápis do replík. Ak sú všetky repliky hore, dostanú žiadosť o zápis bez ohľadu na ich úroveň konzistencie.
Úroveň konzistencie určuje, koľko uzlov odpovie späť s potvrdením úspechu.
Uzol odpovie späť potvrdením úspechu, ak sa údaje úspešne zapíšu do protokolu potvrdenia a do memTable.
Napríklad v jednom dátovom centre s replikačným faktorom rovným tri dostanú tri repliky požiadavku na zápis. Ak je úroveň konzistencie jedna, iba jedna replika odpovie späť s potvrdením úspechu a zvyšné dve zostanú nečinné.
Predpokladajme, že ak zostávajúce dve repliky stratia údaje kvôli výpadkom uzlov alebo iným problémom, Cassandra urobí konzistentný riadok pomocou zabudovaného opravného mechanizmu v Cassandre.
Tu je vysvetlené, ako prebieha proces zápisu v Cassandre,
- Keď príde požiadavka na zápis do uzla, v prvom rade sa prihlási do protokolu potvrdenia.
- Potom Cassandra zapíše údaje do tabuľky. Dáta zapísané do mem-tabuľky o každej požiadavke na zápis sa zapisujú aj do protokolu potvrdenia osobitne. Mem-tabuľka sú dočasne uložené údaje v pamäti, zatiaľ čo denník potvrdenia zaznamenáva záznamy transakcií na účely zálohovania.
- Keď je tabuľka plná, dáta sa vyplnia do dátového súboru SSTable.
Prečítajte si operáciu
Existujú tri typy požiadaviek na čítanie, ktoré koordinátor odosiela do replík.
- Priama požiadavka
- Žiadosť o trávenie
- Prečítajte si žiadosť o opravu
Koordinátor odošle priamu žiadosť do jednej z replík. Potom koordinátor odošle požiadavku na súhrn počtu replík určených úrovňou konzistencie a skontroluje, či vrátené údaje sú aktualizované údaje.
Potom koordinátor odošle požiadavku na súhrn do všetkých zostávajúcich replík. Ak niektorý uzol dáva neaktuálnu hodnotu, požiadavka na opravu načítania na pozadí tieto údaje aktualizuje. Tento proces sa nazýva mechanizmus opravy čítania.
Zhrnutie
Tento tutoriál vysvetľuje vnútornú architektúru Cassandry a to, ako Cassandra replikuje, zapisuje a číta dáta v rôznych fázach. Tu sa tiež vysvetľuje, ako Cassandra udržuje úroveň konzistencie počas celého procesu.