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;
- 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,
- Når skriveanmodning kommer til noden, logger den først i kommitteringsloggen.
- 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.
- 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.
- Direkte anmodning
- Fordøjelsesanmodning
- 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.