Cassandra Arkitektur & Replikeringsfaktorstrategi

Indholdsfortegnelse:

Anonim

Cassandra er designet til at håndtere big data. Cassandras vigtigste funktion er at gemme data på flere noder uden et enkelt fejlpunkt.

Årsagen til denne form for Cassandras arkitektur var, at hardwarefejl kan opstå når som helst. Enhver knude kan være nede. I tilfælde af fejl kan data, der er gemt i en anden node, bruges. Derfor er Cassandra designet med sin distribuerede arkitektur.

Cassandra gemmer data på forskellige noder med en peer-to-peer-distribueret modearkitektur.

Alle knudepunkter udveksler information med hinanden ved hjælp af Gossip-protokollen . Sladder er en protokol i Cassandra, hvormed noder kan kommunikere med hinanden.

I denne vejledning lærer du-

  • Komponenter af Cassandra
  • Datareplikering
  • Skriv operation
  • Læs operation

Komponenter af Cassandra

Der er følgende komponenter i Cassandra;

Cassandra arkitekturdiagram
  • Node

    Node er det sted, hvor data lagres. Det er den grundlæggende komponent i Cassandra.

  • Datacenter

    En samling noder kaldes datacenter. Mange noder er kategoriseret som et datacenter.

  • Klynge

    Klyngen er samlingen af ​​mange datacentre.

  • Forpligtelseslog

    Hver skrivehandling skrives til Commit Log. Forpligtelseslog bruges til gendannelse af nedbrud.

  • Mem-tabel

    Efter data skrevet i Commit log, skrives data i Mem-tabel. Data skrives midlertidigt i Mem-tabel.

  • SST-stabil

    Når Mem-table når en bestemt tærskel, skylles data til en SST-stabil diskfil.

Datareplikering

Da hardwareproblemer kan opstå, eller linket kan være nede når som helst under dataprocessen, kræves der en løsning for at give en sikkerhedskopi, når problemet er opstået. Så data replikeres for at sikre intet enkelt fejlpunkt.

Cassandra placerer replikaer af data på forskellige noder baseret på disse to faktorer.

  • Hvor den næste replika skal placeres, bestemmes af replikeringsstrategien .
  • Mens det samlede antal replikaer placeret på forskellige noder bestemmes af replikationsfaktoren .

En replikeringsfaktor betyder, at der kun er en enkelt kopi af data, mens tre replikationsfaktorer betyder, at der er tre kopier af dataene på tre forskellige noder.

For at sikre, at der ikke er noget enkelt fejlpunkt, skal replikationsfaktoren være tre.

Der er to slags replikeringsstrategier i Cassandra.

SimpleStrategy

SimpleStrategy bruges, når du kun har et datacenter. SimpleStrategy placerer den første replika på den node, der er valgt af partitioneren. Derefter placeres de resterende replikaer i urets retning i Node-ringen.

Her er den billedlige gengivelse af SimpleStrategy.

NetværkstopologiStrategi

NetworkTopologyStrategy bruges, når du har mere end to datacentre.

I NetworkTopologyStrategy indstilles replikaer for hvert datacenter separat. NetworkTopologyStrategy placerer replikaer i urets retning i ringen, indtil den når den første node i et andet rack.

Denne strategi forsøger at placere replikaer på forskellige stativer i det samme datacenter. Dette skyldes grunden til, at der undertiden kan opstå fejl eller problemer i stativet. Derefter kan replikaer på andre noder levere data.

Her er den billedlige gengivelse af netværkstopologistrategien

Skriv operation

Koordinatoren sender en skriveanmodning til replikaer. Hvis alle replikerne er op, modtager de skriveanmodning uanset deres konsistensniveau.

Konsistensniveau bestemmer, hvor mange noder der vil reagere tilbage med succesbekræftelsen.

Noden svarer tilbage med succesbekræftelse, hvis data skrives med succes til forpligtelsesloggen og memTable.

F.eks. Modtager tre replikaer i et enkelt datacenter med replikationsfaktor lig med tre skriveanmodninger. Hvis konsistensniveauet er ét, svarer kun en replika tilbage med succesbekræftelsen, og de resterende to forbliver sovende.

Antag, at hvis resterende to replikaer mister data på grund af node-nedture eller et andet problem, vil Cassandra gøre rækken konsekvent af den indbyggede reparationsmekanisme i Cassandra.

Her forklares det, hvordan skriveprocessen sker i Cassandra,

  1. Når skriveanmodning kommer til noden, logger den først i kommitteringsloggen.
  2. Derefter skriver Cassandra dataene i mem-tabellen. Data, der er skrevet i mem-tabellen på hver skriveanmodning, skriver også i forpligtelseslog separat. Mem-table er en midlertidigt gemt data i hukommelsen, mens Commit log logger transaktionsposterne til sikkerhedskopieringsformål.
  3. Når mem-table er fuld, skylles data til SSTable-datafilen.

Læs operation

Der er tre typer læseanmodninger, som en koordinator sender til replikaer.

  1. Direkte anmodning
  2. Fordøjelsesanmodning
  3. Læs anmodning om reparation

Koordinatoren sender direkte anmodning til en af ​​replikerne. Derefter sender koordinatoren fordøjelsesanmodningen til antallet af replikaer, der er specificeret af konsistensniveauet, og kontrollerer, om de returnerede data er opdaterede data.

Derefter sender koordinatoren fordøjelsesanmodning til alle de resterende replikaer. Hvis en node giver forældet værdi, vil en anmodning om reparation af læsning i baggrunden opdatere disse data. Denne proces kaldes læse reparationsmekanisme.

Resumé

Denne vejledning forklarer den interne Cassandra-arkitektur, og hvordan Cassandra replikerer, skriver og læser data på forskellige stadier. Her forklares det også, hvordan Cassandra opretholder konsistensniveauet gennem hele processen.