Kasandros architektūra & Replikacijos faktoriaus strategija

„Cassandra“ skirta dideliems duomenims tvarkyti. „Cassandra“ pagrindinis bruožas yra saugoti duomenis keliuose mazguose, nesant vieno gedimo taško.

Tokios „Cassandra“ architektūros priežastis buvo ta, kad aparatūros gedimas gali atsirasti bet kuriuo metu. Bet kuris mazgas gali būti žemyn. Gedimo atveju gali būti naudojami kitame mazge saugomi duomenys. Vadinasi, „Cassandra“ sukurta naudojant paskirstytą architektūrą.

„Cassandra“ saugo duomenis apie skirtingus mazgus, pasidalindama mados architektūra.

Visi mazgai keičiasi informacija tarpusavyje naudodamiesi Gossip protokolu . Gandai yra Kasandros protokolas, pagal kurį mazgai gali bendrauti tarpusavyje.

Šioje pamokoje sužinosite

  • Kasandros komponentai
  • Duomenų replikavimas
  • Rašymo operacija
  • Skaityti operaciją

Kasandros komponentai

Kasandroje yra šie komponentai;

Kasandros architektūros schema
  • Mazgas

    Mazgas yra vieta, kur saugomi duomenys. Tai yra pagrindinis Kasandros komponentas.

  • Duomenų centras

    Mazgų rinkinys vadinamas duomenų centru. Daugelis mazgų priskiriami duomenų centrui.

  • Klasteris

    Klasteris yra daugelio duomenų centrų rinkinys.

  • Įvykdyti žurnalą

    Kiekviena rašymo operacija įrašoma į „Commit Log“. Įvykdymo žurnalas naudojamas avarijai atkurti.

  • Mem-stalas

    Po duomenų, įrašytų „Commit log“, duomenys įrašomi į „Mem-table“. Duomenys laikinai įrašomi į „Mem-table“.

  • SSTable

    Kai „Mem-table“ pasiekia tam tikrą ribą, duomenys perkeliami į SSTable disko failą.

Duomenų replikavimas

Kadangi gali kilti aparatinės įrangos problema arba nuoroda gali būti neveikianti bet kuriuo duomenų apdorojimo metu, reikalingas sprendimas pateikti atsarginę kopiją, kai problema kils. Taigi duomenys yra pakartojami, kad nebūtų užtikrintas vienas gedimo taškas.

Kasandra, remdamasi šiais dviem veiksniais, pateikia duomenų kopijas skirtinguose mazguose.

  • Kur dėti kitą repliką, nustato Replikacijos strategija .
  • Nors bendrą replikų, dedamų į skirtingus mazgus, skaičių nustato replikacijos faktorius .

Vienas replikacijos koeficientas reiškia, kad yra tik viena duomenų kopija, o trys replikacijos koeficientas reiškia, kad trijuose skirtinguose mazguose yra trys duomenų kopijos.

Siekiant užtikrinti, kad nėra vieno gedimo taško, replikacijos koeficientas turi būti trys.

Kasandroje yra dviejų rūšių replikacijos strategijos.

„SimpleStrategy“

„SimpleStrategy“ naudojama, kai turite tik vieną duomenų centrą. „SimpleStrategy“ pateikia pirmąją kopiją ant skaidinio pasirinkto mazgo. Po to likusios kopijos dedamos laikrodžio rodyklės kryptimi Mazgo žiede.

Čia pateikiamas „SimpleStrategy“ paveikslėlis.

„NetworkTopologyStrategy“

„NetworkTopologyStrategy“ naudojama, kai turite daugiau nei du duomenų centrus.

„NetworkTopologyStrategy“ kopijos nustatomos kiekvienam duomenų centrui atskirai. „NetworkTopologyStrategy“ žiede deda kopijas pagal laikrodžio rodyklę, kol pasieks pirmąjį mazgą kitoje lentynoje.

Ši strategija bando įdėti kopijas ant skirtingų lentynų tame pačiame duomenų centre. Taip yra dėl tos priežasties, kad kartais stovo gali atsirasti gedimų ar problemų. Tada kitų mazgų kopijos gali pateikti duomenis.

Čia vaizduojamas tinklo topologijos strategijos vaizdavimas

Rašymo operacija

Koordinatorius siunčia rašymo užklausą kopijoms. Jei visos kopijos yra, jos gaus rašymo užklausą, neatsižvelgdamos į jų nuoseklumo lygį.

Nuoseklumo lygis lemia, kiek mazgų atsakys patvirtindami sėkmę.

Mazgas atsakys atgal patvirtindamas sėkmę, jei duomenys bus sėkmingai įrašyti į įsipareigojimų žurnalą ir „ memTable“.

Pavyzdžiui, viename duomenų centre, kurio replikacijos koeficientas yra lygus trims, trys kopijos gaus rašymo užklausą. Jei nuoseklumo lygis yra vienas, sėkmės patvirtinimu atsakys tik viena kopija, o likusios dvi liks neveiklios.

Tarkime, jei likusios dvi kopijos praranda duomenis dėl mazgų nuosmukio ar kitos problemos, „Cassandra“ padarys eilutę nuoseklią naudodamas integruotą „Cassandra“ remonto mechanizmą.

Čia paaiškinta, kaip rašymo procesas vyksta Kasandroje,

  1. Kai į mazgą ateina rašymo užklausa, pirmiausia ji prisijungia prie įsipareigojimų žurnalo.
  2. Tada Kasandra įrašo duomenis į atminties lentelę. Kiekvienos rašymo užklausos atmintinės lentelėje įrašyti duomenys taip pat įrašomi į įsipareigojimų žurnalą atskirai. „Mem-table“ yra laikinai saugomi duomenys atmintyje, o „Commit“ žurnalas registruoja operacijų įrašus atsarginių kopijų kūrimo tikslais.
  3. Kai mem lentelė pilna, duomenys perkeliami į SSTable duomenų failą.

Skaityti operaciją

Yra trijų tipų skaitymo užklausos, kurias koordinatorius siunčia kopijoms.

  1. Tiesioginis prašymas
  2. Suvestinės užklausa
  3. Skaityti remonto užklausą

Koordinatorius siunčia tiesioginę užklausą vienai iš kopijų. Po to koordinatorius išsiunčia santraukos užklausą į nuoseklumo lygiu nurodytą kopijų skaičių ir patikrina, ar grąžinti duomenys yra atnaujinti duomenys.

Po to koordinatorius siunčia suvestinę užklausą visoms likusiems kopijoms. Jei kuris nors mazgas pateikia pasenusią vertę, foninio skaitymo taisymo užklausa atnaujins tuos duomenis. Šis procesas vadinamas skaitymo taisymo mechanizmu.

Santrauka

Šioje pamokoje paaiškinama „Cassandra“ vidinė architektūra ir tai, kaip „Cassandra“ atkartoja, rašo ir skaito duomenis įvairiais etapais. Be to, čia paaiškinama, kaip „Cassandra“ palaiko nuoseklumo lygį viso proceso metu.

Įdomios straipsniai...