Projekty CBS a sqld vyvíjajú cloudové a serverové varianty SQLite

Vývojári SQLite vyvíjajú experimentálny modul VFS CBS (Cloud Backed SQLite), ktorý umožňuje ukladať obsah databázy nie do lokálneho súboru, ale do externého cloudového úložiska. Na ukladanie sa používa databázový formát špeciálne optimalizovaný pre externé úložisko, ktorý umožňuje načítavať dáta z externého úložiska dynamicky podľa potreby, bez toho, aby ste predtým skopírovali celú databázu do lokálneho systému. Z cloudových úložísk sú momentálne podporované Azure Blob Storage a Google Cloud Storage. Každá aplikácia, ktorá podporuje bežné SQLite, môže byť prevedená na používanie CBS.

Modul VFS môže pracovať na pozadí aj v aktívnom režime. Na pozadí v systéme neustále beží proces na pozadí, ktorý umožňuje prístup k externej databáze v režime iba na čítanie, no udržiava zdieľanú vyrovnávaciu pamäť, ktorú môžu zdieľať rôzne procesy. V aktívnom režime je povolené čítanie a zápis, ale používa sa iba lokálna vyrovnávacia pamäť aktuálneho procesu. Naraz môže zapisovať iba jeden klient a ostatní klienti neuvidia zaznamenané zmeny, kým si ich výslovne nevyžiadajú z cloudového úložiska. Na oddelenie rôznych požiadaviek na zápis sa používa typický uzamykací systém SQLite založený na protokole WAL.

Vývojári majú k dispozícii rozšírené C API a rozhranie príkazového riadka, ktoré im umožňuje vykonávať operácie, ako je vytváranie a vyčistenie externého úložiska, načítanie a uvoľnenie databázy do/z externého úložiska, vytváranie kópie databázy na externom úložisku, prezeranie zoznamu databázy v cloudovom úložisku, vymazanie nepoužívaných blokov z cloudového úložiska.

Samostatne vývojári projektu libSQL (rozšírená vidlica SQLite) oznámili serverovú verziu SQLite - sqld, ktorá vám umožňuje organizovať prácu zdieľanej DBMS, ku ktorej sa klienti pripájajú pomocou PostgreSQL alebo HTTP. protokol. Napríklad na pripojenie k sqld možno použiť existujúce klientske knižnice vytvorené pre PostgreSQL DBMS a okrem iného aj rozhranie psql CLI. K serveru sqld je možné pristupovať aj pomocou rozhrania API založeného na HTTP, čo uľahčuje integráciu s webovými aplikáciami. Kód sqld je napísaný v jazyku Rust a distribuovaný pod licenciou MIT.

Medzi oblasti použitia sqld patrí zálohovanie, replikácia do iných systémov a prístup k databáze SQLite v bezserverových infraštruktúrach, kde chýba perzistentné úložisko a údržba lokálnej súborovej databázy je nemožná. V bezserverových systémoch je možné databázu, s ktorou sqld pracuje, replikovať z iných systémov. serverovPre zabezpečenie vysokej dostupnosti a odolnosti voči chybám je podporovaná integrácia s mvSQLite (distribuovaný variant SQLite bežiaci nad FoundationDB). Aktívny režim zálohovania je implementovaný prostredníctvom pravidelných snímok stavu databázy a replikácie zmien z protokolu WAL do cloudového úložiska kompatibilného s Amazon S3.

Pre aplikácie je poskytnutá knižnica kompatibilná s SQLite, ktorú je možné načítať cez LD_PRELOAD na prechod z ukladania údajov do lokálneho súboru na prácu cez sqld. Do SQLite je možné sťahovať rozšírenia. Klientske knižnice sú pripravené pre TypeScript, JavaScript, Rust, Go a Python. S databázou prepojenou s sqld môžete súčasne pracovať pomocou štandardných nástrojov SQLite, t.j. sqld funguje ako doplnok na poskytovanie sieťového prístupu k databáze, replikáciu a zálohovanie. Napríklad: # Spustite server pre databázu SQLite foo.db: sqld -d foo.db -p 127.0.0.1:5432 --http-listen-addr=127.0.0.1:8000 # Prístup k databáze pomocou nástrojov PostgreSQL: psql -q postgres ://127.0.0.1 # Pripojenie lokálne k databáze pomocou SQLite toolkitu: sqlite3 foo.db # Prístup cez HTTP: curl -s -d "{\"príkazy\": [\"SELECT * z databáz; \"] } »\http://127.0.0.1:8000

Na záver môžeme spomenúť projekt LiteFS vyvinutý spoločnosťou Fly.io. LiteFS je modul FUSE na organizovanie práce s jednou zdieľanou databázou SQLite na viacerých hostiteľoch. LiteFS replikuje stav databázy medzi viacerými systémami tým, že zachytáva operácie zápisu do súboru z databázy a vysiela tieto operácie do iných systémov pomocou určitého transakčného mechanizmu a ukladá transakcie do samostatného súboru vo formáte LTX. LiteFS kód je napísaný v Go a distribuovaný pod licenciou Apache 2.0.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster