Megjelent az rqlite 6.0, egy elosztott, hibatűrő adatbázis, amely az SQLite-ra épül.

Megjelent az rqlite 6.0 elosztott DBMS verziója, amely az SQLite-ot használja tárolómotorral, és lehetővé teszi egy, a közöttük szinkronizált tárolók klaszterének működését. Az rqlite jellemzői közé tartozik a telepítés, kiépítés és karbantartás egyszerűsége, amely hasonló az etcd-hez és a Consulhoz, de relációs adatmódellt használ a kulcs/érték formátum helyett. A projekt kódját Go nyelven írták, és MIT licenc alatt terjesztik.

A szinkronizált állapot fenntartásához a Raft konszenzus-képző algoritmust használják. Az rqlite az eredeti SQLite könyvtárat és a standard go-sqlite3 meghajtót alkalmazza, amelyeken egy réteg fut, ami a klienslekérdezéseket kezeli, replikálja azokat más csomópontokra, és figyeli a vezető csomópont kiválasztására vonatkozó konszenzus elérését.

Az adatbázisba csak az a csomópont írhat, amelyet vezetőnek választottak, de a write műveletek kapcsolatai más klasztercsomópontokhoz is irányíthatók, amelyek visszaadják a vezető címét a kérés megismétléséhez (a következő verzióban ígérik, hogy automatikus átirányítást adnak a vezetőre). A fő hangsúly a hibamentességen van, ezért az DBMS csak az olvasási műveletek skálázhatók, míg az írási műveletek szűk keresztmetszetet jelentenek. Az rqlite klasztert egyetlen csomópontból is el lehet indítani, és ez a megoldás használható az SQLite hozzáférésének szervezésére HTTP-n keresztül, hibamentesítés nélkül.

Az SQLite adatok minden csomóponton nem fájlban, hanem memóriában tárolódnak. A Raft protokoll megvalósításának szintjén minden SQLite parancs naplózva van, amelyek az adatbázist módosítják. Ezt a naplót a replikáláskor használják (a replikáció a lekérdezések más csomópontoknál való lejátszása révén történik), új csomópont indításakor vagy a kapcsolati elvesztés utáni helyreállítás során. A napló méretének csökkentésére automatikus tömörítés alkalmazása történik, amely meghatározott számú módosítás után indul, és a lemezen egy pillanatfelvétel rögzítéséhez vezet, amelyhez új napló készül (a memória állapota megegyezik a pillanatfelvétellel + a felhalmozott változások naplója).

Az rqlite jellemzői:

  • A klaszter telepítése egyszerű, nincs szükség külön SQLite telepítésre.
  • Lehetőség gyorsan előállítani egy SQL tárolót másolás révén.
  • Készen áll a munkahelyi projektekhez való használatra (Production-grade).
  • HTTP(S) API rendelkezésre áll, amely lehetővé teszi az adatok kötegelt frissítését és a klaszter vezető csomópontjának meghatározását. Emellett parancssoros interfész is elérhető, valamint a SQLite-ra készült különböző klienskönyvtárak használatának lehetősége.
  • Szolgáltatás elérhetősége, amely lehetővé teszi más csomópontok meghatározását, így dinamikusan létrehozhatók klaszterek.
  • Adatok közötti titkosítás támogatása a csomópontok között.
  • Olvasási élményegyeztetés és adatkonzisztencia szintjének beállításának lehetősége.
  • Opcionális lehetőség a csomópontok csatlakoztatására csak olvasási módban, amelyek nem vesznek részt a konszenzus meghatározásában, és a klaszter olvasási műveleteinek skálázhatóságát növelik.
  • Saját tranzakciós forma támogatása, amely lehetővé teszi több parancs egy kérésbe való egyesítését (BEGIN, COMMIT, ROLLBACK, SAVEPOINT és RELEASE alapú tranzakciók nem támogatottak).
  • Forró biztonsági mentések létrehozásának támogatása.

Az új kiadásban jelentős architekturális változásokat vezettek be, amelyek a klaszter megbízhatóságának növelésére irányulnak azáltal, hogy javítják az olvasási és írási kérések irányítását a klaszter megfelelő csomópontjaihoz. Az rqlite csomópontok most már egynél több logikai kapcsolatot tudnak multiplexálni, TCP kapcsolatokon keresztül, amelyeket a Raft protokollal állítanak fel a csomópontok között. Ha a kérés vezető csomópont engedélyeit igényel, de másodlagos csomópontnak van címezve, a másodlagos csomópont képes meghatározni a vezető címét, és azt az ügyfélnek továbbítani anélkül, hogy a Raft protokollon keresztül konszenzust kellene elérnie.

A változás lehetővé tette a metadaták szinkronizálásához használt külön komponenstől való megszabadulást, valamint a Raft állapotának és metadatáinak külön kezelésének megszüntetését. A másodlagos csomópontok most már csak szükség esetén irányítják a kéréseket a vezető csomóponthoz, amikor meg kell tudniuk a vezető címét. Az API lehetőséget kínál más klaszterbeli csomópontok állapotának információszerzésére. A parancssoros interfészhez hozzáadott „.sysdump” parancs.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster