Cassandra Architextuur en replicatiefactor

Cassandra is ontworpen om te hanteren Big data. CassandraHet belangrijkste kenmerk van het systeem is het opslaan van gegevens op meerdere knooppunten, zonder dat er sprake is van een enkel storingspunt.

De reden voor dit soort Cassandra's architectuur was dat de hardwarestoring op elk moment kan optreden. Elk knooppunt kan down zijn. In geval van storing kunnen gegevens die in een ander knooppunt zijn opgeslagen, worden gebruikt. Daarom, Cassandra is ontworpen met een gedistribueerde architectuur.

Cassandra slaat gegevens op op verschillende knooppunten met een peer-to-peer gedistribueerde modearchitectuur.

Alle knooppunten wisselen informatie met elkaar uit via Roddel protocol. Roddelen is een protocol in Cassandra waarmee knooppunten met elkaar kunnen communiceren.

Onderdelen van Cassandra Architectuur

Er zijn de volgende componenten in de Cassandra Archistructuur:

Cassandra Architectuur
Cassandra Archistructuurdiagram

Knooppunt

Knooppunt is de plaats waar gegevens worden opgeslagen. Het is het basisbestanddeel van Cassandra.

Data Center

Een verzameling knooppunten wordt een datacenter genoemd. Veel knooppunten zijn gecategoriseerd als datacenter.

Cluster

Een cluster is een verzameling van meerdere datacenters.

Vastleggingslogboek

Elke schrijfbewerking wordt naar Commit Log geschreven. Commit log wordt gebruikt voor crashherstel.

Mem-tabel

Nadat de gegevens in het Commit-logboek zijn geschreven, worden de gegevens in de Mem-tabel geschreven. Gegevens worden tijdelijk in de Mem-tabel geschreven.

SSTabel

Wanneer Mem-table een bepaalde drempel bereikt, worden gegevens naar een SSTable-schijfbestand gespoeld.

Gegevensreplicatie in Cassandra

Omdat er op elk moment tijdens het gegevensproces een hardwareprobleem kan optreden of de verbinding verbroken kan worden, is er een oplossing nodig om een ​​back-up te maken wanneer het probleem zich heeft voorgedaan. Gegevens worden dus gerepliceerd om er zeker van te zijn dat er geen enkel storingspunt is.

Cassandra plaatst replica's van gegevens op verschillende knooppunten op basis van deze twee factoren.

  • Waar de volgende replica moet worden geplaatst, wordt bepaald door de Strategie voor replicatie.
  • Terwijl het totale aantal replica's dat op verschillende knooppunten wordt geplaatst, wordt bepaald door de Replicatiefactor.

Eén replicatiefactor betekent dat er slechts één kopie van de gegevens is, terwijl drie replicatiefactoren betekenen dat er drie kopieën van de gegevens op drie verschillende knooppunten zijn.

Om ervoor te zorgen dat er geen enkel punt van mislukking is, replicatiefactor moet drie zijn.

Er zijn twee soorten replicatiestrategieën in Cassandra.

SimpleStrategie in Cassandra

Eenvoudige Strategie wordt gebruikt wanneer u slechts één datacenter hebt. SimpleStrategy plaatst de eerste replica op het knooppunt dat door de partitioner is geselecteerd. Daarna worden de resterende replica's met de klok mee in de Node-ring geplaatst.

Hier is de grafische weergave van de SimpleStrategy:

SimpleStrategie in Cassandra
SimpleStrategie in Cassandra

NetwerkTopologieStrategie in Cassandra

NetwerkTopologieStrategie wordt gebruikt wanneer u meer dan twee datacenters hebt. In NetworkTopologyStrategy worden replica's voor elk datacenter afzonderlijk ingesteld. NetworkTopologyStrategy plaatst replica's met de klok mee in de ring totdat het eerste knooppunt in een ander rack is bereikt. Deze strategie probeert replica's op verschillende racks in hetzelfde datacenter te plaatsen.

Dit komt doordat er soms storingen of problemen in het rack kunnen optreden. Vervolgens kunnen replica's op andere knooppunten gegevens leveren.

Hier is de grafische weergave van de netwerktopologiestrategie:

NetwerkTopologieStrategie in Cassandra
NetwerkTopologieStrategie in Cassandra

Schrijven Operain Cassandra

De coördinator stuurt een schrijfverzoek naar replica's. Als alle replica's actief zijn, ontvangen ze een schrijfverzoek, ongeacht hun consistentieniveau.

Consistentieniveau bepaalt hoeveel knooppunten zullen reageren met de succesbevestiging.

Het knooppunt zal reageren met de succesbevestiging als de gegevens met succes naar het commitlogboek zijn geschreven memTabel.

In één datacenter met een replicatiefactor gelijk aan drie ontvangen drie replica's bijvoorbeeld een schrijfverzoek. Als het consistentieniveau één is, reageert slechts één replica met de succesbevestiging en blijven de overige twee inactief.

Stel dat als de resterende twee replica's gegevens verliezen als gevolg van knooppuntuitval of een ander probleem, Cassandra maakt de rij consistent door het ingebouwde reparatiemechanisme Cassandra.

Hier wordt uitgelegd hoe het schrijfproces plaatsvindt Cassandra,

  1. Als er een schrijfverzoek bij het knooppunt binnenkomt, logt het eerst in het commitlogboek.
  2. Dan Cassandra schrijft de gegevens in de mem-tabel. Gegevens die bij elk schrijfverzoek in de mem-tabel zijn geschreven, worden ook afzonderlijk in het commit-logboek geschreven. Mem-table is een tijdelijk opgeslagen gegevens in het geheugen, terwijl Commit log de transactierecords registreert voor back-updoeleinden.
  3. Wanneer de geheugentabel vol is, worden de gegevens naar het SSTable-gegevensbestand gespoeld.
Schrijven Operain Cassandra
Schrijven Operain Cassandra

Lees Operain Cassandra

Er zijn drie soorten leesaanvragen die een coördinator naar replica's verzendt.

  1. Directe aanvraag
  2. Verzoek om samenvatting
  3. Reparatieverzoek lezen

De coördinator stuurt een direct verzoek naar een van de replica's. Daarna verzendt de coördinator het samenvattingsverzoek naar het aantal replica's dat is opgegeven door het consistentieniveau en controleert of de geretourneerde gegevens bijgewerkte gegevens zijn.

Daarna stuurt de coördinator een samenvattingsverzoek naar alle resterende replica's. Als een knooppunt een verouderde waarde geeft, zal een reparatieverzoek op de achtergrond die gegevens bijwerken. Dit proces wordt het leesreparatiemechanisme genoemd.

Samenvatting

  • In deze tutorial wordt uitgelegd hoe Cassandra interne architectuur, en hoe Cassandra repliceert, schrijft en leest gegevens in verschillende stadia.
  • Hier wordt ook uitgelegd hoe Cassandra handhaaft het consistentieniveau gedurende het hele proces.
  • Onderdelen van Cassandra Archistructuur: Knooppunt, Datacenter, Cluster, Commit Log, Mem-tabel, SSTable
  • Eén replicatiefactor betekent dat er slechts één kopie van de gegevens is, terwijl drie replicatiefactoren betekenen dat er drie kopieën van de gegevens op drie verschillende knooppunten zijn.
  • SimpleStrategy wordt gebruikt wanneer u slechts één datacenter heeft.
  • NetworkTopologyStrategy wordt gebruikt als u meer dan twee datacenters heeft.