Cassandra on loodud suurandmete haldamiseks. Cassandra põhiomadus on andmete salvestamine mitmesse sõlme ilma ühe rikkepunktita.
Sellise Cassandra arhitektuuri põhjus oli see, et riistvaratõrge võib tekkida igal ajal. Iga sõlm võib olla maas. Rikke korral saab kasutada teises sõlmes salvestatud andmeid. Seega on Cassandra kujundatud hajutatud arhitektuuriga.
Cassandra salvestab andmeid erinevate sõlmpunktide kohta, peer-to-peer hajutatud moearhitektuuri abil.
Kõik sõlmed vahetavad omavahel teavet Gossipi protokolli abil . Gossip on Cassandra protokoll, mille abil sõlmed saavad omavahel suhelda.
Selles õpetuses saate teada
- Cassandra komponendid
- Andmete replikatsioon
- Kirjutamise operatsioon
- Lugege Operation
Cassandra komponendid
Cassandras on järgmised komponendid;
- Sõlm
Sõlm on koht, kuhu andmeid salvestatakse. See on Cassandra põhikomponent.
- Andmekeskus
Sõlmede kogu nimetatakse andmekeskuseks. Paljud sõlmed on liigitatud andmekeskusteks.
- Kobar
Klaster on paljude andmekeskuste kogu.
- Kohusta logi
Iga kirjutamistoiming kirjutatakse Commit Logisse. Commit logi kasutatakse krahhi taastamiseks.
- Mem-laud
Pärast Commit logi kirjutatud andmeid kirjutatakse andmed Mem-tabelisse. Andmed kirjutatakse Mem-tabelisse ajutiselt.
- SSTable
Kui Mem-tabel saavutab teatud künnise, viiakse andmed SSTable-kettafaili.
Andmete replikatsioon
Kuna andmetöötluse ajal võib tekkida riistvaraprobleem või link võib olla katki, on probleemi ilmnemisel vaja varunduse loomiseks lahendus leida. Nii et andmeid korratakse, et tagada ükski ebaõnnestumispunkt.
Cassandra paigutab nende kahe teguri põhjal andmete koopiad erinevatesse sõlmedesse.
- Kuhu järgmine koopia paigutatakse, määratakse kindlaks paljundusstrateegia järgi .
- Kui erinevatele sõlmedele paigutatud koopiate koguarv on määratud replikatsiooniteguriga .
Üks kordustegur tähendab, et andmetest on ainult üks koopia, samas kui kolm kordustegurit tähendab, et andmetest on kolm koopiat kolmes erinevas sõlmes.
Ühe rikkepunkti puudumise tagamiseks peab replikatsioonitegur olema kolm.
Cassandras on kahte tüüpi replikatsioonistrateegiaid.
SimpleStrategy
SimpleStrategy't kasutatakse siis, kui teil on ainult üks andmekeskus. SimpleStrategy paigutab partitsiooni valitud sõlme esimese koopia. Pärast seda asetatakse ülejäänud koopiad sõlme rõngas päripäeva.
Siin on SimpleStrategy pildiline esitus.
NetworkTopologyStrategy
NetworkTopologyStrategy'i kasutatakse juhul, kui teil on rohkem kui kaks andmekeskust.
Rakenduses NetworkTopologyStrategy määratakse koopiad igale andmekeskusele eraldi. NetworkTopologyStrategy paigutab koopiad rõngas päripäeva, kuni jõuab teise racki esimese sõlmeni.
See strateegia püüab paigutada koopiad ühte andmekeskuse erinevatele rackidele. Selle põhjuseks on põhjus, et mõnikord võivad rackis esineda tõrkeid või probleeme. Siis saavad teiste sõlmede koopiad andmeid pakkuda.
Siin on võrgu topoloogia strateegia piltlik esitus
Kirjutamise operatsioon
Koordinaator saadab koopiatele kirjutamistaotluse. Kui kõik koopiad on üleval, saavad nad kirjutamisnõude, olenemata nende järjepidevuse tasemest.
Järjepidevuse tase määrab, kui palju sõlme vastab edukuse kinnitamisega.
Sõlm vastab edukuse kinnitamisega, kui andmed on edukalt logitud logisse ja memTable.
Näiteks ühes andmekeskuses, kus replikatsioonitegur on võrdne kolmega, saavad kolm koopiat kirjutamistaotluse. Kui järjepidevuse tase on üks, vastab edukuse kinnitamisega vaid üks koopia ja ülejäänud kaks jäävad seisma.
Oletame, et kui ülejäänud kaks koopiat kaotavad andmeid sõlmede languse või mõne muu probleemi tõttu, muudab Cassandra rea järjepidevaks Cassandra sisseehitatud remondimehhanismi abil.
Siin on selgitatud, kuidas kirjutamisprotsess toimub Cassandras,
- Kui sõlme tuleb kirjutamisnõue, logib see kõigepealt pühendamislogisse.
- Seejärel kirjutab Cassandra andmed mem-tabelisse. Iga kirjutamisnõude mem-tabelisse kirjutatud andmed kirjutavad pühendamispäevikusse ka eraldi. Mem-table on ajutiselt mällu salvestatud andmed, samal ajal kui Commit log logib tehingu kirjed varundamise eesmärgil.
- Kui mem-tabel on täis, viiakse andmed SSTable-andmefaili.
Lugege Operation
Koordinaator saadab koopiatele kolme tüüpi lugemispäringuid.
- Otsene taotlus
- Digest taotluse
- Lugege remonditaotlust
Koordinaator saadab ühele koopiale otsese päringu. Pärast seda saadab koordinaator kokkuvõtte taotluse järjepidevuse tasemega määratud koopiate arvule ja kontrollib, kas tagastatud andmed on uuendatud andmed.
Pärast seda saadab koordinaator kokkuvõtliku taotluse kõigile ülejäänud koopiatele. Kui mõni sõlm annab vananenud väärtuse, värskendab taustalugemise parandustaotlus neid andmeid. Seda protsessi nimetatakse lugemise parandamise mehhanismiks.
Kokkuvõte
Selles õpetuses selgitatakse Cassandra sisemist arhitektuuri ja seda, kuidas Cassandra paljundab, kirjutab ja loeb andmeid erinevates etappides. Samuti selgitatakse siin, kuidas Cassandra säilitab järjepidevuse taset kogu protsessi vältel.