Cassandra Architecture & Replication Factor
Cassandra je navrลพen tak, aby zvlรกdl Big dat. CassandraHlavnรญ funkcรญ je uklรกdรกnรญ dat na vรญce uzlech bez jedinรฉho bodu selhรกnรญ.
Dลฏvod pro tento druh Cassandraarchitektura byla takovรก, ลพe k selhรกnรญ hardwaru mลฏลพe dojรญt kdykoli. Jakรฝkoli uzel mลฏลพe bรฝt dole. V pลรญpadฤ poruchy lze pouลพรญt data uloลพenรก v jinรฉm uzlu. Proto, Cassandra je navrลพen s distribuovanou architekturou.
Cassandra uklรกdรก data na rลฏznรฝch uzlech pomocรญ distribuovanรฉ mรณdnรญ architektury typu peer to peer.
Vลกechny uzly si vymฤลujรญ informace mezi sebou pomocรญ Gossip protokol. Gossip je protokol v Cassandra pomocรญ kterรฝch mohou uzly mezi sebou komunikovat.
Komponenty Cassandra Architecture
V Cassandra Archistruktura:

Uzel
Uzel je mรญsto, kde jsou uloลพena data. Je zรกkladnรญ sloลพkou Cassandra.
Data Center
Kolekce uzlลฏ se nazรฝvรก datovรฉ centrum. Mnoho uzlลฏ je kategorizovรกno jako datovรฉ centrum.
Cluster
Cluster je souborem mnoha datovรฝch center.
Zapsat protokol
Kaลพdรก operace zรกpisu je zapsรกna do Commit Log. Commit log se pouลพรญvรก pro obnovu po havรกrii.
Pamฤลฅovรฝ stลฏl
Po zรกpisu dat do Commit logu jsou data zapsรกna do Mem-table. Data jsou doฤasnฤ zapsรกna do tabulky Mem.
SSTable
Kdyลพ Mem-table dosรกhne urฤitรฉ prahovรฉ hodnoty, data se vyprรกzdnรญ do souboru disku SSTable.
Replikace dat v Cassandra
Vzhledem k tomu, ลพe kdykoli bฤhem zpracovรกnรญ dat mลฏลพe dojรญt k problรฉmลฏm s hardwarem nebo k vรฝpadku spojenรญ, je vyลพadovรกno ลeลกenรญ, kterรฉ poskytne zรกlohu, kdyลพ se problรฉm vyskytne. Data jsou tedy replikovรกna pro zajiลกtฤnรญ ลพรกdnรฉho jedinรฉho bodu selhรกnรญ.
Cassandra umรญstรญ repliky dat na rลฏznรฉ uzly na zรกkladฤ tฤchto dvou faktorลฏ.
- Kam umรญstit dalลกรญ repliku je urฤeno Strategie replikace.
- Zatรญmco celkovรฝ poฤet replik umรญstฤnรฝch na rลฏznรฝch uzlech je urฤen Replikaฤnรญ faktor.
Jeden faktor replikace znamenรก, ลพe existuje pouze jedna kopie dat, zatรญmco tลi faktor replikace znamenรก, ลพe existujรญ tลi kopie dat na tลech rลฏznรฝch uzlech.
Aby se zajistilo, ลพe neexistuje jedinรฝ bod selhรกnรญ, replikaฤnรญ faktor musรญ bรฝt tลi.
Existujรญ dva druhy replikaฤnรญch strategiรญ Cassandra.
SimpleStrategy v Cassandra
SimpleStrategy se pouลพรญvรก, kdyลพ mรกte pouze jedno datovรฉ centrum. SimpleStrategy umรญstรญ prvnรญ repliku na uzel vybranรฝ rozdฤlovaฤem oddรญlลฏ. Potรฉ jsou zbรฝvajรญcรญ repliky umรญstฤny ve smฤru hodinovรฝch ruฤiฤek do kruhu Node.
Zde je obrรกzkovรก reprezentace SimpleStrategy:

NetworkTopologyStrategy v Cassandra
NetworkTopologyStrategy se pouลพรญvรก, kdyลพ mรกte vรญce neลพ dvฤ datovรก centra. V NetworkTopologyStrategy se repliky nastavujรญ pro kaลพdรฉ datovรฉ centrum zvlรกลกลฅ. NetworkTopologyStrategy umรญstรญ repliky do kruhu ve smฤru hodinovรฝch ruฤiฤek, dokud nedosรกhne prvnรญho uzlu v jinรฉm stojanu. Tato strategie se pokouลกรญ umรญstit repliky do rลฏznรฝch stojanลฏ ve stejnรฉm datovรฉm centru.
To je zpลฏsobeno tรญm, ลพe nฤkdy mลฏลพe dojรญt k selhรกnรญ nebo problรฉmu ve stojanu. Data pak mohou poskytovat repliky na jinรฝch uzlech.
Zde je obrรกzkovรฉ znรกzornฤnรญ strategie topologie sรญtฤ:

Napsat Operavstoupit Cassandra
Koordinรกtor odeลกle ลพรกdost o zรกpis do replik. Pokud jsou vลกechny repliky aktivnรญ, obdrลพรญ poลพadavek na zรกpis bez ohledu na รบroveล jejich konzistence.
รroveล konzistence urฤuje, kolik uzlลฏ odpovรญ zpฤt s potvrzenรญm รบspฤchu.
Uzel odpovรญ zpฤt s potvrzenรญm รบspฤchu, pokud jsou data รบspฤลกnฤ zapsรกna do protokolu odevzdรกnรญ a memTable.
Napลรญklad v jedinรฉm datovรฉm centru s replikaฤnรญm faktorem rovnรฝm tลem obdrลพรญ poลพadavek na zรกpis tลi repliky. Pokud je รบroveล konzistence jedna, pouze jedna replika odpovรญ zpฤt s potvrzenรญm รบspฤchu a zbรฝvajรญcรญ dvฤ zลฏstanou neฤinnรฉ.
Pลedpoklรกdejme, ลพe pokud zbรฝvajรญcรญ dvฤ repliky ztratรญ data kvลฏli vรฝpadkลฏm uzlลฏ nebo jinรฉmu problรฉmu, Cassandra dรญky vestavฤnรฉmu opravnรฉmu mechanismu bude ลรกdek konzistentnรญ Cassandra.
Zde je vysvฤtleno, jak probรญhรก proces zรกpisu Cassandra,
- Kdyลพ do uzlu pลijde poลพadavek na zรกpis, nejprve se zapรญลกe do protokolu odevzdรกnรญ.
- Pak Cassandra zapรญลกe data do mem-tabulky. Data zapsanรก v mem-tabulce pลi kaลพdรฉm poลพadavku na zรกpis se takรฉ zapisujรญ do protokolu odevzdรกnรญ samostatnฤ. Tabulka pamฤti je doฤasnฤ uloลพenรก data v pamฤti, zatรญmco Commit log zaznamenรกvรก zรกznamy transakcรญ pro รบฤely zรกlohovรกnรญ.
- Kdyลพ je tabulka mem plnรก, data se vyprรกzdnรญ do datovรฉho souboru SSTable.

ฤรญst Operavstoupit Cassandra
Existujรญ tลi typy poลพadavkลฏ na ฤtenรญ, kterรฉ koordinรกtor odesรญlรก do replik.
- Pลรญmรก ลพรกdost
- ลฝรกdost o vรฝtah
- Pลeฤtฤte si ลพรกdost o opravu
Koordinรกtor odeลกle pลรญmou ลพรกdost jednรฉ z replik. Potรฉ koordinรกtor odeลกle ลพรกdost o souhrn na poฤet replik urฤenรฝ รบrovnรญ konzistence a zkontroluje, zda jsou vrรกcenรก data aktualizovanรก data.
Potรฉ koordinรกtor odeลกle ลพรกdost o souhrn vลกem zbรฝvajรญcรญm replikรกm. Pokud nฤkterรฝ uzel uvede zastaralou hodnotu, ลพรกdost o opravu ฤtenรญ na pozadรญ aktualizuje tato data. Tento proces se nazรฝvรก mechanismus opravy ฤtenรญ.
Shrnutรญ
- Tento tutoriรกl vysvฤtluje Cassandra vnitลnรญ architektura a jak Cassandra replikuje, zapisuje a ฤte data v rลฏznรฝch fรกzรญch.
- Zde je takรฉ vysvฤtleno jak Cassandra udrลพuje รบroveล konzistence bฤhem celรฉho procesu.
- Komponenty Cassandra Architecture: Node, Data Center, Cluster, Commit Log, Mem-table, SSTable
- Jeden faktor replikace znamenรก, ลพe existuje pouze jedna kopie dat, zatรญmco tลi faktor replikace znamenรก, ลพe existujรญ tลi kopie dat na tลech rลฏznรฝch uzlech.
- SimpleStrategy se pouลพรญvรก, kdyลพ mรกte pouze jedno datovรฉ centrum.
- NetworkTopologyStrategy se pouลพรญvรก, kdyลพ mรกte vรญce neลพ dvฤ datovรก centra.
