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:

Cassandra Architecture
Cassandra Architecture Diagram

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:

SimpleStrategy v Cassandra
SimpleStrategy v Cassandra

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ฤ›:

NetworkTopologyStrategy v Cassandra
NetworkTopologyStrategy v Cassandra

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,

  1. Kdyลพ do uzlu pล™ijde poลพadavek na zรกpis, nejprve se zapรญลกe do protokolu odevzdรกnรญ.
  2. 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รญ.
  3. Kdyลพ je tabulka mem plnรก, data se vyprรกzdnรญ do datovรฉho souboru SSTable.
Napsat Operavstoupit Cassandra
Napsat Operavstoupit Cassandra

ฤรญst Operavstoupit Cassandra

Existujรญ tล™i typy poลพadavkลฏ na ฤtenรญ, kterรฉ koordinรกtor odesรญlรก do replik.

  1. Pล™รญmรก ลพรกdost
  2. ลฝรกdost o vรฝtah
  3. 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.

Shrลˆte tento pล™รญspฤ›vek takto: