Cassandra Architectuur & Strategie voor replicatiefactoren

Inhoudsopgave:

Anonim

Cassandra is ontworpen om met big data om te gaan. De belangrijkste functie van Cassandra is om gegevens op meerdere knooppunten op te slaan zonder een enkel storingspunt.

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

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

Alle knooppunten wisselen informatie met elkaar uit met behulp van het Gossip-protocol . Gossip is een protocol in Cassandra waarmee knooppunten met elkaar kunnen communiceren.

In deze tutorial leer je-

  • Onderdelen van Cassandra
  • Gegevensreplicatie
  • Schrijf operatie
  • Lees operatie

Onderdelen van Cassandra

Er zijn volgende componenten in de Cassandra;

Cassandra-architectuurdiagram
  • Knooppunt

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

  • Datacenter

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

  • TROS

    Het cluster is de verzameling van veel datacenters.

  • Vastleglogboek

    Elke schrijfbewerking wordt naar het vastleglogboek geschreven. Het vastleglogboek wordt gebruikt voor herstel na een crash.

  • Mem-tafel

    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.

  • SSTable

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

Gegevensreplicatie

Omdat er tijdens het gegevensproces een hardwareprobleem kan optreden of de koppeling niet beschikbaar is, is een oplossing vereist om een ​​back-up te maken wanneer het probleem zich heeft voorgedaan. De 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 replicatiestrategie .
  • 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 zijn op drie verschillende knooppunten.

Om er zeker van te zijn dat er geen single point of failure is, moet de replicatiefactor drie zijn.

Er zijn twee soorten replicatiestrategieën in Cassandra.

SimpleStrategy

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

Hier is de picturale weergave van de SimpleStrategy.

NetworkTopologyStrategy

NetworkTopologyStrategy wordt gebruikt wanneer u meer dan twee datacenters heeft.

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 rek wordt bereikt.

Deze strategie probeert replica's op verschillende racks in hetzelfde datacenter te plaatsen. Dit komt doordat er soms een storing of probleem kan optreden in het rack. Vervolgens kunnen replica's op andere knooppunten gegevens leveren.

Hier is de grafische weergave van de netwerktopologiestrategie

Schrijf operatie

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

Het consistentieniveau bepaalt hoeveel knooppunten zullen reageren met de succesbevestiging.

Het knooppunt zal reageren met de succesbevestiging als de gegevens met succes naar het vastleglogboek en memTable zijn geschreven.

In een enkel datacenter met een replicatiefactor gelijk aan drie, ontvangen bijvoorbeeld drie replica's 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 het uitvallen van knooppunten of een ander probleem, Cassandra de rij consistent zal maken door het ingebouwde reparatiemechanisme in Cassandra.

Hier wordt uitgelegd hoe het schrijfproces plaatsvindt in Cassandra,

  1. Wanneer een schrijfverzoek naar het knooppunt komt, logt het allereerst in het vastleglogboek.
  2. Vervolgens schrijft Cassandra de gegevens in de mem-tabel. Gegevens die in de mem-tabel op elk schrijfverzoek worden geschreven, worden ook afzonderlijk in het vastleglogboek geschreven. Mem-tabel is een tijdelijk opgeslagen gegevens in het geheugen, terwijl Commit-log de transactierecords registreert voor back-updoeleinden.
  3. Als de mem-tabel vol is, worden de gegevens doorgespoeld naar het SSTable-gegevensbestand.

Lees operatie

Er zijn drie soorten leesverzoeken die een coördinator naar replica's stuurt.

  1. Direct verzoek
  2. Digest-verzoek
  3. Lees het reparatieverzoek

De coördinator stuurt een direct verzoek naar een van de replica's. Daarna stuurt de coördinator het samenvattingsverzoek naar het aantal replica's dat is gespecificeerd 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 herstelverzoek op de achtergrond die gegevens bijwerken. Dit proces wordt een leesreparatiemechanisme genoemd.

Overzicht

In deze tutorial wordt de interne architectuur van Cassandra uitgelegd en hoe Cassandra gegevens in verschillende stadia repliceert, schrijft en leest. Hier wordt ook uitgelegd hoe Cassandra het consistentieniveau gedurende het hele proces handhaaft.