A CBS és az sqld projektek fejlesztik az SQLite felhő- és szervervariánsait.

Az SQLite fejlesztői kísérleti VFS-modulokat fejlesztenek, mint a CBS (Cloud Backed SQLite), amely lehetővé teszi az adatbázis-tartalom tárolását nem helyi fájlban, hanem külső felhőalapú tárolóban. A tárolás során egy speciálisan külső tárolásra optimalizált adatbázis-formátumot használnak, amely lehetővé teszi az adatok dinamikus betöltését a külső tárolóból szükség szerint, anélkül, hogy az egész adatbázist előre a helyi rendszerre kellene másolni. Jelenleg az Azure Blob Storage és a Google Cloud Storage áll rendelkezésre a felhőalapú tárolók között, ahová bármilyen alkalmazást át lehet vinni, amely támogatja a hagyományos SQLite-t.

A VFS-modul működhet háttér- és aktív módban. Háttérmódban a rendszer folyamatosan egy háttérfolyamatot futtat, amely lehetővé teszi a külső adatbázishoz való hozzáférést csupán olvasási módban, de közös gyorsítótárat támogat, amelyhez különböző folyamatok közösen hozzáférhetnek. Aktív módban olvasás és írás megengedett, de csak a jelenlegi folyamat lokális gyorsítóját használja. Minden pillanatban csak egy kliens végezhet írást, a többi kliens pedig nem látja az írt módosításokat, amíg nem kérik azokat kifejezetten a felhőalapú tárolóból. Az írási kérések elkülönítésére az SQLite szokásos WAL-napló alapú blokkolási rendszere alkalmazandó.

A fejlesztők kiterjesztett C API-t és parancssori interfészt kapnak, amelyek lehetővé teszik olyan műveletek végrehajtását, mint a külső tároló létrehozása és törlése, az adatbázis betöltése és kiürítése külső tárolóból, adatbázis-másolat készítése a külső tárolón, az adatbázisok listájának megtekintése a felhőalapú tárolóban, valamint az inaktív blokkok eltávolítása a felhőalapú tárolóból.

A libSQL projekt fejlesztői külön bejelentették az SQLite szervervariánsát – a sqld-t, amely lehetővé teszi egy közösen használt DBMS működését, amelyhez a kliensek PostgreSQL vagy HTTP protokoll alkalmazásával csatlakozhatnak. Például a sqld-hez meglévő PostgreSQL DBMS-hez készült klienskönyvtárak használhatók, többek között a CLI interfész, a psql. A sqld-hez HTTP protokoll alapú API-n keresztül is hozzáférhetünk, ami megkönnyíti a webalkalmazásokkal való integrációt. A sqld kódja Rust nyelven íródott, és MIT licenc alatt terjesztik.

A sqld alkalmazási területei közé tartozik a biztonsági mentés, más rendszerekre való replikáció és a SQLite adatbázisokhoz való hozzáférés biztosítása szerver nélküli infrastruktúrákban, ahol nincs állandó tároló, és lokális fájlban nem lehet adatbázist vezetni. A szerver nélküli rendszerekben a sqld-vel kezelt adatbázis más helyekről is replikálható. szerverek. A magas rendelkezésre állás és a hibák elleni védelem érdekében integrációt támogat a mvSQLite (a FoundationDB fölött működő elosztott SQLite változat) is. Aktív biztonsági másolat fenntartási módja elérhető, amely időszakos adatbázis állapotmentésekkel és a WAL napló változásainak felhőalapú tárolóba való replikációjával valósul meg, amely kompatibilis az Amazon S3-mal.

Az alkalmazások számára kompatibilis SQLite könyvtár áll rendelkezésre, amely az LD_PRELOAD-on keresztül tölthető be, lehetővé téve az adatok helyi fájlban való tárolásáról a sqld-n keresztüli működésre való áttérést. SQLite-hoz bővítmények betöltése is lehetséges. Klienskönyvtárak készültek TypeScript, JavaScript, Rust, Go és Python nyelvekhez. A sqld-hez kötött adatbázist a megszokott SQLite eszközkészlettel egy időben is kezelhetjük, vagyis a sqld a DB-hez való hálózati hozzáférés, replikáció és biztonsági mentés biztosításának rétegeként működik. Példa: # Indítjuk a sqld szervert a SQLite adatbázis számára, foo.db: sqld -d foo.db -p 127.0.0.1:5432 —http-listen-addr=127.0.0.1:8000 # A PostgreSQL eszközökkel hozzáférünk az adatbázishoz: psql -q postgres://127.0.0.1 # Helyben csatlakozunk az adatbázishoz SQLite eszközökkel: sqlite3 foo.db # HTTP-n keresztül hívunk: curl -s -d "{\"statements\": [\"SELECT * from databases;\"] }" \ http://127.0.0.1:8000

Összegzésként érdemes megemlíteni a LiteFS projektet, amelyet a Fly.io fejleszt. A LiteFS egy FUSE-modul, amely lehetővé teszi, hogy egy közös SQLite adatbázissal több hoszton dolgozzunk. A LiteFS replikálja az adatbázis állapotát több rendszer között az adatbázis fájlba írási műveletek elfogásával, és ezeknek a műveleteknek a más rendszerekre való továbbításával, hasonló tranzakciós mechanizmus segítségével, és a tranzakciók külön LTX formátumú fájlba történő mentésével. A LiteFS kódja Go nyelven íródott, és Apache 2.0 licenc alatt terjesztik.

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