Cassandra ArchiTecture & Replication Factor
โก รlykรคs yhteenveto
Cassandra arkkitehtuuri jakaa dataa vertaissolmujen kesken ilman yksittรคistรค vikaantumispistettรค kรคyttรคen juoruja koordinointiin ja replikointiin kestรคvyyden takaamiseksi. Tรคmรค sivu kattaa kaikki komponentit, sekรค replikointistrategiat, yhdenmukaisuustasot ettรค sisรคiset kirjoitus- ja lukupolut.

Cassandra on suunniteltu kรคsittelemรครคn Big Data. CassandraPรครคominaisuus on tallentaa tietoja useisiin solmuihin ilman yhtรค vikakohtaa.
Syynรค tรคllaiseen CassandraArkkitehtuuri oli, ettรค laitteistovika voi tapahtua milloin tahansa. Mikรค tahansa solmu voi olla alhaalla. Vian sattuessa voidaan kรคyttรครค toiseen solmuun tallennettuja tietoja. Siten, Cassandra on suunniteltu hajautetulla arkkitehtuurillaan.
Cassandra tallentaa tietoja eri solmuista peer to peer -hajautetulla muotiarkkitehtuurilla.
Kaikki solmut vaihtavat tietoja keskenรครคn kรคyttรคmรคllรค Juoruprotokolla. Juorut ovat protokolla Cassandra joiden avulla solmut voivat kommunikoida keskenรครคn.
Komponentit Cassandra Archirakenne
Siinรค on seuraavat komponentit Cassandra Archirakenne:

Yllรค oleva kaavio sisรคkkรคisiรค komponentteja: solmut sijaitsevat datakeskuksen sisรคllรค, datakeskukset sijaitsevat klusterin sisรคllรค ja commit-loki, memtable ja SSTable sijaitsevat jokaisen yksittรคisen solmun sisรคllรค.
Solmu
Solmu on paikka, johon tiedot tallennetaan. Se on peruskomponentti Cassandra.
Data Center
Solmujen kokoelmaa kutsutaan datakeskukseksi. Monet solmut on luokiteltu tietokeskuksiksi.
Cluster
Klusteri on monien datakeskusten kokoelma.
Sitoumusloki
Jokainen kirjoitustoiminto kirjoitetaan toimituslokiin. Toimituslokia kรคytetรครคn kaatumisen palauttamiseen.
Muistipรถytรค
Toimituslokiin kirjoitetun tiedon jรคlkeen tiedot kirjoitetaan Mem-taulukkoon. Tiedot kirjoitetaan vรคliaikaisesti Mem-taulukkoon.
SSTable
Kun Mem-taulukko saavuttaa tietyn kynnyksen, tiedot tyhjennetรครคn SSTable-levytiedostoon. SSTable-taulukot ovat muuttumattomia, joten pรคivitys kirjoittaa uuden version vanhan version muokkaamisen sijaan, ja taustalla suoritettava prosessi, jota kutsutaan tiivistรคmiseksi, yhdistรครค nรคmรค versiot ja hylkรครค korvatut rivit.
Tietojen replikointi sisรครคn Cassandra
Koska laitteisto-ongelma tai linkki voi olla poissa milloin tahansa tietojenkรคsittelyn aikana, tarvitaan ratkaisu varmuuskopion luomiseksi, kun ongelma on ilmennyt. Joten tiedot kopioidaan, jotta varmistetaan, ettei yksittรคinen vikakohta ole.
Cassandra sijoittaa datakopioita eri solmuihin nรคiden kahden tekijรคn perusteella.
- Seuraavan replikan sijoituspaikka mรครคrittรครค Replikointistrategia.
- Vaikka eri solmuihin sijoitettujen replikoiden kokonaismรครคrรค mรครคrรคytyy Replikointitekijรค.
Yksi replikointitekijรค tarkoittaa, ettรค tiedoista on vain yksi kopio, kun taas kolme replikointitekijรครค tarkoittaa, ettรค tiedoista on kolme kopiota kolmessa eri solmussa.
Varmistaakseen, ettรค ei ole yhtรค vikakohtaa, replikointitekijรคn on oltava kolme.
Siinรค on kahdenlaisia โโreplikointistrategioita Cassandra.
SimpleStrategy sisรครคn Cassandra
Yksinkertainen strategia kรคytetรครคn, kun sinulla on vain yksi datakeskus. SimpleStrategy sijoittaa ensimmรคisen replikan osioinnin valitsemaan solmuun. Sen jรคlkeen loput replikat sijoitetaan myรถtรคpรคivรครคn solmurenkaaseen.
Tรคssรค on kuvallinen esitys SimpleStrategysta:

NetworkTopologyStrategy sisรครคn Cassandra
NetworkTopologyStrategy kรคytetรครคn, kun sinulla on enemmรคn kuin kaksi datakeskusta. NetworkTopologyStrategyssa kopiot asetetaan jokaiselle datakeskukselle erikseen. NetworkTopologyStrategy sijoittaa replikat myรถtรคpรคivรครคn renkaaseen, kunnes se saavuttaa toisen telineen ensimmรคisen solmun. Tรคmรค strategia yrittรครค sijoittaa replikoita eri telineisiin samassa palvelinkeskuksessa.
Tรคmรค johtuu siitรค, ettรค telineessรค voi joskus ilmetรค vika tai ongelma. Sitten muiden solmujen replikat voivat tarjota tietoja.
Tรคssรค on kuvallinen esitys verkkotopologiastrategiasta:

Replikaatiokerroin mรครคrรครค, kuinka monta kopiota on olemassa. Se, kuinka monen nรคistรค kopioista on vastattava tiettyyn pyyntรถรถn, on erillinen asetus, jota kuvataan seuraavaksi.
Johdonmukaisuustasot Cassandra
Yhdenmukaisuustaso asetetaan kyselykohtaisesti eikรค klusterikohtaisesti, mikรค tekee siitรค Cassandra viritettรคvรค. Se mรครคrittรครค, kuinka monen replikan on kuitattava kirjoitus tai vastattava lukuun, ennen kuin koordinaattori vastaa asiakkaalle. Matala taso palauttaa nopeammin; korkea taso palauttaa tietoja, jotka ovat varmasti ajankohtaisempia.
| Taso | Kรคyttรคytyminen | Tyypillinen kรคyttรถ |
|---|---|---|
| ONE | Yhden kopion on vastattava. | Suuritehoinen lokikirjaus, jossa satunnainen vanhentunut luku on hyvรคksyttรคvรค. |
| PรIVรYS | Kaikista replikoista enemmistรถn on vastattava, laskettuna kaavalla (RF / 2) + 1. | Yleiskรคyttรถinen valinta tasapainoisen johdonmukaisuuden ja saatavuuden kannalta. |
| PAIKALLINEN_PรรTรSMรYS | Suurimman osan paikallisen datakeskuksen replikoista on vastattava. | Usean datakeskuksen klusterit, koska se vรคlttรครค alueiden vรคlisen viiveen. |
| KAIKKI | Jokaisen kopion on vastattava. | Harvinainen. Yksi solmun kaatuminen aiheuttaa pyynnรถn tรคydellisen epรคonnistumisen. |
| KAIKKI (vain kirjoitusoikeudet) | Vihjeellรค tehty vaihto lasketaan onnistuneeksi, vaikka replikaan ei olisikaan yhteyttรค. | Maksimaalinen kirjoitusapu, jossa kestรคvyydestรค voidaan tinkiรค. |
Vahva johdonmukaisuus on taattu, kun luku- ja kirjoitustason summa ylittรครค replikointikertoimen. Replikointikertoimen ollessa kolme QUORUM-tasolla kirjoittaminen ja QUORUM-tasolla lukeminen tรคyttรคvรคt tรคmรคn sรครคnnรถn, koska kaksi ynnรค kaksi on suurempi kuin kolme. YKSI-tasolla kirjoittaminen ja YKSI-tasolla lukeminen eivรคt tรคyty, ja luku voi siksi palauttaa vanhemman arvon.
Kun replikaan ei saada yhteyttรค, koordinaattori tallentaa vihje ja toistaa sen uudelleen, kun solmu palaa, mikรค on tapa, jolla MIKร TAHANSA taso ja suuri osa siitรค Cassandran itseรครคn parantava kรคyttรคytymismalli toimii.
Kirjoittaa Operavuonna Cassandra
Koordinaattori lรคhettรครค kopioille kirjoituspyynnรถn. Jos kaikki kopiot ovat valmiina, ne saavat kirjoituspyynnรถn johdonmukaisuustasosta riippumatta.
Johdonmukaisuustaso mรครคrittรครค, kuinka monta solmua vastaa onnistumisvahvistuksella.
Solmu vastaa onnistumiskuittauksella, jos tiedot kirjoitetaan onnistuneesti toimituslokiin ja muistitaulukko.
Esimerkiksi yhdessรค datakeskuksessa, jonka replikointikerroin on kolme, kolme replikaa vastaanottaa kirjoituspyynnรถn. Jos johdonmukaisuustaso on yksi, vain yksi replika vastaa onnistumisilmoituksella, ja loput kaksi pysyvรคt lepotilassa.
Oletetaan, ettรค kaksi jรคljellรค olevaa replikaa menettรครค tietoja solmujen laskun tai muun ongelman vuoksi, Cassandra tekee rivistรค yhtenรคisen sisรครคnrakennetun korjausmekanismin ansiosta Cassandra.
Tรคssรค selitetรครคn, kuinka kirjoitusprosessi tapahtuu Cassandra,
- Kun solmulle tulee kirjoituspyyntรถ, se kirjautuu ensin toimituslokiin.
- Sitten Cassandra kirjoittaa tiedot mem-taulukkoon. Jokaisen kirjoituspyynnรถn mem-taulukkoon kirjoitetut tiedot kirjoitetaan myรถs toimituslokiin erikseen. Mem-taulukko on vรคliaikaisesti muistiin tallennettu tieto, kun taas Commit log kirjaa tapahtumatietueet varmuuskopiointia varten.
- Kun muistitaulukko on tรคynnรค, tiedot huuhdellaan SSTable-datatiedostoon.

Koska SSTable-taulukoita ei koskaan muokata paikan pรครคllรค, poisto ei poista riviรค vรคlittรถmรคsti. Sen sijaan kรคytetรครคn merkkiรค, jota kutsutaan nimellรค hautakivi kirjoitetaan, ja rivi katoaa vasta, kun pakkaus suoritetaan lisรคajan jรคlkeen. Tรคstรค syystรค suuret poistotyรถmรครคrรคt hidastavat lukemista, kunnes pakkaus saavuttaa sen.
Lue Operavuonna Cassandra
Koordinaattori lรคhettรครค replikoihin kolmenlaisia โโlukupyyntรถjรค.
- Suora pyyntรถ
- Tiivistelmรคpyyntรถ
- Lue korjauspyyntรถ
Koordinaattori lรคhettรครค suoran pyynnรถn yhdelle replikoista. Tรคmรคn jรคlkeen koordinaattori lรคhettรครค tiivistelmรคpyynnรถn johdonmukaisuustason mรครคrittรคmรคlle mรครคrรคlle replikoita ja tarkistaa, onko palautettu data pรคivitettyรค dataa.
Tรคmรคn jรคlkeen koordinaattori lรคhettรครค tiivistelmรคpyynnรถn kaikille jรคljellรค oleville replikoille. Jos jokin solmu antaa vanhentuneen arvon, taustalukukorjauspyyntรถ pรคivittรครค tiedot. Tรคtรค prosessia kutsutaan lukukorjausmekanismiksi.
Suoran pyynnรถn vastaanottavan replikan sisรคllรค hakujรคrjestys on suunniteltu siten, ettรค levylle ei kosketa aina kun mahdollista.
- muistitaulukko tarkistetaan ensin, koska uusimpia kirjoitustรถitรค ei ole vielรค tyhjennetty.
- rivivรคlimuisti, jos kรคytรถssรค, voi vastata koko pyyntรถรถn ilman lisรคtoimia.
- A kukintasuodatin kyselyรค kรคytetรครคn jokaisen SSTable-taulukon kohdalla. Se vastaa joko definitely not present tai possibly present, minkรค ansiosta useimmat SSTable-taulukot voidaan ohittaa lukematta niitรค.
- osioindeksi ja sen yhteenveto paikantavat tarkan tavuoffsetin missรค tahansa SSTable-taulukossa, joka selviรครค bloom-suodattimen tarkistuksesta.
- Useiden SSTable-taulukoiden vastaavat fragmentit yhdistetรครคn, ja kunkin sarakkeen viimeisin aikaleima voittaa.
Bloom-suodatin on vaihe, joka pitรครค lukemat nopeina datan kasvaessa, koska se poistaa lรคhes kaikki SSTable-taulukot huomioon ottaen ennen levyn hakua. Nรคiden mekaniikoiden soveltamista useissa koneissa kรคsitellรครคn seuraavassa. Cassandra klusteri opetusohjelma.
