Cassandra Arkitektur & Replikasjonsfaktorstrategi

Innholdsfortegnelse:

Anonim

Cassandra er designet for å håndtere store data. Cassandras hovedfunksjon er å lagre data på flere noder uten et eneste feilpunkt.

Årsaken til denne typen Cassandras arkitektur var at maskinvarefeil kan oppstå når som helst. Enhver node kan være nede. I tilfelle feil kan data som er lagret i en annen node brukes. Derfor er Cassandra designet med sin distribuerte arkitektur.

Cassandra lagrer data på forskjellige noder med en node-til-node-distribuert motearkitektur.

Alle nodene utveksler informasjon med hverandre ved hjelp av Gossip-protokollen . Sladder er en protokoll i Cassandra som noder kan kommunisere med hverandre.

I denne veiledningen vil du lære-

  • Komponenter av Cassandra
  • Datareplikering
  • Skriv operasjon
  • Les Operasjon

Komponenter av Cassandra

Det er følgende komponenter i Cassandra;

Cassandra arkitekturdiagram
  • Node

    Node er stedet der data lagres. Det er den grunnleggende komponenten i Cassandra.

  • Datasenter

    En samling noder kalles datasenter. Mange noder er kategorisert som et datasenter.

  • Klynge

    Klyngen er samlingen av mange datasentre.

  • Forpliktelseslogg

    Hver skriveoperasjon skrives til Commit Log. Forpliktelseslogg brukes til gjenoppretting av krasj.

  • Mem-tabell

    Etter at data er skrevet i Commit log, blir data skrevet i Mem-tabellen. Data skrives midlertidig i Mem-tabellen.

  • SST-stabil

    Når Mem-tabellen når en viss terskel, skylles data til en SST-stabil diskfil.

Datareplikering

Ettersom maskinvareproblem kan oppstå eller koblingen kan være nede når som helst under dataprosessen, kreves det en løsning for å gi en sikkerhetskopi når problemet har oppstått. Så data blir replikert for å sikre ingen enkelt feilpunkt.

Cassandra plasserer kopier av data på forskjellige noder basert på disse to faktorene.

  • Hvor du skal plassere neste replika bestemmes av replikeringsstrategien .
  • Mens det totale antallet kopier plassert på forskjellige noder bestemmes av replikasjonsfaktoren .

En replikasjonsfaktor betyr at det bare er en enkelt kopi av data, mens tre replikasjonsfaktorer betyr at det er tre kopier av dataene på tre forskjellige noder.

For å sikre at det ikke er noe eneste feilpunkt, må replikasjonsfaktoren være tre.

Det er to typer replikeringsstrategier i Cassandra.

SimpleStrategy

SimpleStrategy brukes når du bare har ett datasenter. SimpleStrategy plasserer den første kopien på noden valgt av partisjonen. Etter det blir gjenværende kopier plassert med urviseren i Node-ringen.

Her er den billedlige representasjonen av SimpleStrategy.

NetworkTopologyStrategy

NetworkTopologyStrategy brukes når du har mer enn to datasentre.

I NetworkTopologyStrategy settes replikaer for hvert datasenter separat. NetworkTopologyStrategy plasserer replikaer med urviseren i ringen til den når den første noden i et annet rack.

Denne strategien prøver å plassere replikaer på forskjellige stativer i samme datasenter. Dette skyldes grunnen til at det noen ganger kan oppstå feil eller problemer i stativet. Da kan kopier på andre noder gi data.

Her er den billedlige representasjonen av nettverkets topologistrategi

Skriv operasjon

Koordinatoren sender en skriveforespørsel til replikaer. Hvis alle kopiene er oppe, vil de motta skriveforespørsel uavhengig av konsistensnivå.

Konsistensnivå bestemmer hvor mange noder som vil svare tilbake med suksessbekreftelsen.

Noden vil svare tilbake med suksessbekreftelse hvis data er skrevet med suksess til forpliktelsesloggen og minnetabellen.

For eksempel, i et enkelt datasenter med replikasjonsfaktor tilsvarer tre, vil tre kopier motta skriveforespørsel. Hvis konsistensnivået er ett, vil bare en kopi svare tilbake med suksessbekreftelsen, og de resterende to vil forbli sovende.

Anta at hvis resterende to kopier mister data på grunn av node nedturer eller et annet problem, vil Cassandra gjøre raden konsistent av den innebygde reparasjonsmekanismen i Cassandra.

Her blir det forklart hvordan skriveprosessen skjer i Cassandra,

  1. Når skriveforespørsel kommer til noden, logger den først i forpliktelsesloggen.
  2. Deretter skriver Cassandra dataene i mem-tabellen. Data skrevet i mem-tabellen på hver skriveforespørsel skriver også separat i forpliktelsesloggen. Mem-table er en midlertidig lagret data i minnet mens Commit-loggen logger transaksjonsregistrene for sikkerhetskopieringsformål.
  3. Når mem-tabellen er full, skylles data til SSTable-datafilen.

Les Operasjon

Det er tre typer leseforespørsler som en koordinator sender til replikaer.

  1. Direkte forespørsel
  2. Sammendrag forespørsel
  3. Les reparasjonsforespørsel

Koordinatoren sender direkte forespørsel til en av kopiene. Etter det sender koordinatoren fordøyelsesforespørselen til antall replikaer spesifisert av konsistensnivået og sjekker om de returnerte dataene er oppdaterte data.

Etter det sender koordinatoren fordøyelsesforespørsel til alle gjenværende kopier. Hvis en node gir utdatert verdi, vil en forespørsel om reparasjon i bakgrunnen lese dataene. Denne prosessen kalles lese reparasjonsmekanisme.

Sammendrag

Denne opplæringen forklarer Cassandra interne arkitektur, og hvordan Cassandra replikerer, skriver og leser data på forskjellige stadier. Også her forklarer det hvordan Cassandra opprettholder konsistensnivået gjennom hele prosessen.