Izdan rqlite 6.0, distribuirani otporni DBMS temeljen na SQLite

Predstavljen je izdanje distribuirane DBMS rqlite 6.0, koja koristi SQLite kao skladišni motor i omogućava organizaciju rada klastera međusobno sinhronizovanih skladišta. U posebnostima rqlite ističe se jednostavnost instalacije, implementacije i održavanja distribuiranog otpornog skladišta, slično etcd i Consul, ali koristi relacijski model rada s podacima umesto formata ključ/vednost. Kod projekta napisan je na jeziku Go i distribuira se pod MIT licencom.

Za održavanje svih čvorova u sinhronizovanom stanju koristi se algoritam postizanja konsenzusa Raft. Rqlite koristi originalnu SQLite biblioteku i standardni drajver go-sqlite3, na kojima se pokreće sloj koji obrađuje zahteve klijenata, vrši replikaciju na druge čvorove i prati postizanje konsenzusa pri izboru vodećeg čvora.

Izmene u bazi podataka mogu se unositi samo čvorom koji je odabran kao vodeći, ali veze sa operacijama pisanja mogu se usmeriti i na druge čvorove klastera, koji će vratiti adresu lidera za ponavljanje zahteva (u sledećoj verziji obećavaju dodati automatsko preusmeravanje zahteva na lidera). Glavni naglasak stavlja se na otpornost, pa se DBMS skalira samo po operacijama čitanja, dok su operacije pisanja usko grlo. Moguće je pokrenuti klaster rqlite iz jednog čvora i to rešenje može se koristiti za organizovanje pristupa SQLite putem HTTP bez pružanja otpornosti.

Podaci SQLite na svakom čvoru se ne čuvaju u fajlu, već u memoriji. Na nivou sloja sa implementacijom protokola Raft vodi se log svih SQLite komandi koje dovode do promene u bazi podataka. Ovaj log se koristi prilikom replikacije (replikacija na nivou reprodukcije zahteva na drugim čvorovima), pokretanja novog čvora ili oporavka nakon gubitka konekcije. Da bi se smanjila veličina loga koristi se automatsko pakovanje, koje se pokreće nakon određenog broja izmena i dovodi do fiksacije na disku snimka, u odnosu na koji počinje vođenje novog loga (stanje baze podataka u memoriji identično je snimku + nagomilanom logu izmena).

Karakteristike rqlite:

  • Enostavna namestitev klasterja, brez potrebe po ločeni namestitvi SQLite.
  • Možnost hitrega pridobivanja replikiranega SQL skladišča.
  • Pripravljenost za uporabo v delovnih projektih (Production-grade).
  • Na voljo je HTTP(S) API, ki omogoča posodabljanje podatkov v serijah in določanje vodilnega vozlišča klasterja. Na voljo je tudi vmesnik za ukazno vrstico in uporaba različnih odjemalskih knjižnic, razvitih za SQLite.
  • Na voljo je storitev za zaznavanje drugih vozlišč, kar omogoča dinamično ustvarjanje klasterjev.
  • Podpora za šifriranje prenosa podatkov med vozlišči.
  • Možnost nastavitve ravni preverjanja veljavnosti in usklajenosti podatkov med branjem.
  • Opcijska možnost povezovanja vozlišč v načinu samo za branje, ki ne sodelujejo pri določanju konsenza in se uporabljajo za povečanje razširljivosti klasterja pri operacijah branja.
  • Podpora za lastno obliko transakcij na osnovi združevanja ukazov v enem povpraševanju (transakcije na osnovi BEGIN, COMMIT, ROLLBACK, SAVEPOINT in RELEASE niso podprte).
  • Podpora za ustvarjanje vročih varnostnih kopij.

V novem izidu so bile izvedene pomembne arhitekturne spremembe, usmerjene v povečanje zanesljivosti klasterja s pomočjo izboljšanja procesa usmerjanja zahtevkov za branje in pisanje na pravilna vozlišča klasterja. Vozlišča rqlite zdaj lahko multiplexirajo med seboj več logičnih povezav, ob uporabi TCP povezav, ustanovljenih med vozlišči s protokolom Raft. Če zahteva zahteva pooblastila vodilnega vozlišča, vendar je poslana sekundarnemu vozlišču, lahko sekundarno vozlišče določi naslov vodje in ga posreduje stranki, brez izvajanja izračuna konsenza po protokolu Raft.

Sprememba je prav tako omogočila odpravo ločenega komponenta za sinhronizacijo metapodatkov in izključila ločeno obdelavo stanja Rafta in metapodatkov. Sekundarna vozlišča zdaj usmerjajo zahteve na vodilno vozlišče le po potrebi, ko je treba ugotoviti naslov vodilnega vozlišča. V API je na voljo možnost pridobivanja informacij o stanju drugih vozlišč v klasterju. V ukazno vrstico je bila dodana ukaz '.sysdump'.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster