Cassandra Architecture & Replikationsfaktor
Cassandra är utformad för att hantera Stora data. CassandraHuvudfunktionen är att lagra data på flera noder utan en enda felpunkt.
Anledningen till denna typ av Cassandras arkitektur var att hårdvarufelet kan uppstå när som helst. Vilken nod som helst kan vara nere. Vid fel kan data som lagras i en annan nod användas. Därför, Cassandra är designad 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 Skvallerprotokoll. Skvaller är ett protokoll i Cassandra genom vilka noder kan kommunicera med varandra.
Komponenter av Cassandra Architecture
Det finns följande komponenter i Cassandra Architecture:

Nod
Noden är platsen där data lagras. Det är den grundläggande komponenten i Cassandra.
Data Center
En samling noder kallas datacenter. Många noder kategoriseras som ett datacenter.
Cluster
Klustret är samlingen av många datacenter.
Commit Log
Varje skrivoperation skrivs till Commit Log. Commit log används för kraschåterställning.
Mem-bord
Efter att data skrivits i Commit-loggen skrivs data i Mem-tabell. Data skrivs tillfälligt i Mem-tabellen.
SSTable
När Mem-table når ett visst tröskelvärde spolas data till en SSTable diskfil.
Datareplikering i Cassandra
Eftersom maskinvaruproblem kan uppstå eller länken kan vara nere när som helst under dataprocessen, krävs en lösning för att tillhandahålla en säkerhetskopia när problemet har uppstått. Så data replikeras för att säkerställa att det inte finns någon enskild felpunkt.
Cassandra placerar repliker av data på olika noder baserat på dessa två faktorer.
- Var nästa replik ska placeras bestäms av Replikeringsstrategi.
- Medan det totala antalet repliker placerade på olika noder bestäms av Replikeringsfaktor.
En replikeringsfaktor betyder att det bara finns en 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 enskild punkt av misslyckande, replikeringsfaktorn måste vara tre.
Det finns två typer av replikeringsstrategier i Cassandra.
SimpleStrategy in Cassandra
Enkel Strategi används när du bara har ett datacenter. SimpleStrategy placerar den första repliken på noden som väljs av partitioneraren. Därefter placeras återstående repliker medurs i Nod-ringen.
Här är den bildliga representationen av SimpleStrategy:
NätverkstopologiStrategi i Cassandra
Nätverkstopologistrategi används när du har fler ä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 representationen av nätverkstopologistrategin:
Skriva Operation in Cassandra
Samordnaren skickar en skrivförfrågan till repliker. Om alla replikerna är uppe kommer de att få skrivbegäran oavsett deras konsistensnivå.
Konsistensnivå bestämmer hur många noder som kommer att svara tillbaka med framgångsbekräftelsen.
Noden kommer att svara tillbaka med framgångsbekräftelsen om data skrivs framgångsrikt till commit-loggen och minnestabell.
Till exempel, i ett enda datacenter med en replikeringsfaktor som är lika med tre, kommer tre repliker att ta emot skrivbegäran. Om konsistensnivån är en, kommer bara en replik att svara tillbaka med framgångsbekräftelsen, och de återstående två kommer att förbli vilande.
Anta att om de återstående två replikerna förlorar data på grund av nodnedgångar eller något annat problem, Cassandra kommer att göra raden konsekvent med den inbyggda reparationsmekanismen i Cassandra.
Här förklaras hur skrivprocessen går till Cassandra,
- När skrivbegäran kommer till noden loggas den först av allt i commit-loggen.
- Sedan Cassandra skriver data i mem-tabellen. Data som skrivs i minnestabellen på varje skrivbegäran skrivs också i commit-loggen separat. Mem-tabell är en tillfälligt lagrad data i minnet medan Commit-logg loggar transaktionsposterna för säkerhetskopieringsändamål.
- När minnestabellen är full spolas data till SSTable-datafilen.
Läsa Operation in Cassandra
Det finns tre typer av läsbegäranden som en samordnare skickar till repliker.
- Direkt begäran
- Sammanfattningsförfrågan
- Läs reparationsförfrågan
Samordnaren skickar direkt förfrågan till en av replikerna. Därefter skickar koordinatorn sammanfattningsbegäran till antalet repliker som anges av konsistensnivån och kontrollerar om den returnerade datan är en uppdaterad data.
Efter det skickar koordinatorn sammanfattningsbegäran till alla återstående repliker. Om någon nod ger ett inaktuellt värde kommer en bakgrundsläsreparationsbegäran att uppdatera dessa data. Denna process kallas läsreparationsmekanism.
Sammanfattning
- Denna handledning förklarar Cassandra intern arkitektur, och hur Cassandra replikerar, skriver och läser data i olika skeden.
- Här förklaras också hur Cassandra upprätthåller konsistensnivån under hela processen.
- Komponenter av Cassandra Architecture: Nod, Datacenter, Cluster, Commit Log, Mem-table, SSTable
- En replikeringsfaktor betyder att det bara finns en kopia av data medan tre replikeringsfaktorer betyder att det finns tre kopior av data på tre olika noder.
- SimpleStrategy används när du bara har ett datacenter.
- NetworkTopologyStrategy används när du har fler än två datacenter.