Cassandra är utformad för att hantera stora data. Cassandras huvudfunktion är att lagra data på flera noder utan en enda felpunkt.
Anledningen till denna typ av Cassandras arkitektur var att maskinvarufel kan inträffa när som helst. Vilken nod som helst kan vara nere. I händelse av fel kan data som lagras i en annan nod användas. Därför är Cassandra utformad med sin distribuerade arkitektur.
Cassandra lagrar data på olika noder med en peer-to-peer-distribuerad modearkitektur.
Alla noder utbyter information med varandra med hjälp av Gossip-protokollet . Skvaller är ett protokoll i Cassandra genom vilket noder kan kommunicera med varandra.
I den här handledningen lär du dig-
- Komponenter i Cassandra
- Datareplikering
- Skriv operation
- Läs operation
Komponenter i Cassandra
Det finns följande komponenter i Cassandra;
- Nod
Noden är den plats där data lagras. Det är den grundläggande komponenten i Cassandra.
- Datacenter
En samling noder kallas datacenter. Många noder kategoriseras som ett datacenter.
- Klunga
Klustret är samlingen av många datacenter.
- Åtagandelogg
Varje skrivoperation skrivs till Commit Log. Åtagandeloggen används för kraschåterställning.
- Mem-tabell
Efter att data skrivits i Commit-loggen, skrivs data i Mem-tabellen. Data skrivs tillfälligt i Mem-tabellen.
- SST-stabil
När Mem-tabellen når en viss tröskel spolas data till en SST-stabil diskfil.
Datareplikering
Eftersom maskinvaruproblem kan uppstå eller länken kan vara nere när som helst under dataprocessen krävs en lösning för att ge en säkerhetskopia när problemet har uppstått. Så data replikeras för att säkerställa ingen enda felpunkt.
Cassandra placerar repliker av data på olika noder baserat på dessa två faktorer.
- Var du ska placera nästa replika bestäms av replikeringsstrategin .
- Medan det totala antalet repliker placerade på olika noder bestäms av replikeringsfaktorn .
En replikeringsfaktor betyder att det bara finns en enda kopia av data medan tre replikeringsfaktorer betyder att det finns tre kopior av data på tre olika noder.
För att säkerställa att det inte finns någon enda felpunkt måste replikeringsfaktorn vara tre.
Det finns två typer av replikeringsstrategier i Cassandra.
SimpleStrategy
SimpleStrategy används när du bara har ett datacenter. SimpleStrategy placerar den första repliken på noden som valts av partitionern. Därefter placeras återstående repliker i medurs riktning i nodringen.
Här är den bildliga framställningen av SimpleStrategy.
NetworkTopologyStrategy
NetworkTopologyStrategy används när du har mer än två datacenter.
I NetworkTopologyStrategy ställs repliker in för varje datacenter separat. NetworkTopologyStrategy placerar repliker medurs i ringen tills den når den första noden i ett annat rack.
Denna strategi försöker placera repliker på olika rack i samma datacenter. Detta beror på att det ibland kan uppstå fel eller problem i racket. Sedan kan repliker på andra noder tillhandahålla data.
Här är den bildliga framställningen av nätverkets topologistrategi
Skriv operation
Samordnaren skickar en skrivförfrågan till repliker. Om alla repliker är uppe kommer de att få skrivförfrågan oavsett deras konsistensnivå.
Konsistensnivå avgör hur många noder som kommer att svara tillbaka med framgångsbekräftelse.
Noden svarar tillbaka med framgångsbekräftelsen om data skrivs framgångsrikt till engagemangsloggen och memTable.
Till exempel, i ett enda datacenter med replikationsfaktor lika med tre, kommer tre repliker att få skrivförfrågan. Om konsistensnivån är en kommer endast en replik att svara tillbaka med framgångsbekräftelsen och de återstående två kommer att förbli vilande.
Antag att om återstående två repliker tappar data på grund av nodnedgångar eller något annat problem, kommer Cassandra att göra raden konsekvent av den inbyggda reparationsmekanismen i Cassandra.
Här förklaras hur skrivprocessen sker i Cassandra,
- När skrivförfrågan kommer till noden loggas den först i kommittéloggen.
- Sedan skriver Cassandra data i mem-tabellen. Data som skrivs i mem-tabellen för varje skrivförfrågan skrivs också i kommittéloggen separat. Mem-tabell är en tillfälligt lagrad data i minnet medan Commit-logg loggar transaktionsposterna för säkerhetskopiering.
- När mem-tabellen är full, spolas data till SSTable-datafilen.
Läs operation
Det finns tre typer av läsförfrågningar som en samordnare skickar till repliker.
- Direkt begäran
- Sammanfattningsförfrågan
- Läs reparationsförfrågan
Samordnaren skickar direkt begäran till en av replikerna. Därefter skickar samordnaren uppslutningsförfrågan till antalet repliker som anges av konsistensnivån och kontrollerar om de returnerade data är uppdaterade data.
Efter det skickar samordnaren smältförfrågan till alla återstående repliker. Om någon nod ger föråldrat värde kommer en begäran om att reparera bakgrunden att uppdatera dessa data. Denna process kallas läsreparationsmekanism.
Sammanfattning
Denna handledning förklarar Cassandras interna arkitektur och hur Cassandra replikerar, skriver och läser data i olika stadier. Här förklarar det också hur Cassandra upprätthåller konsistensnivån under hela processen.