CBS ja sqld projektid arendavad SQLite'i pilve- ja serveriversioone

SQLite arendajad arendavad katsetuslikku CBS (Cloud Backed SQLite) VFS-moodulit, mis võimaldab andmebaasi sisu hoida mitte kohalikus failis, vaid välises pilvehoidlas. Andmete salvestamiseks kasutatakse spetsiaalselt väliseks salvestamiseks optimeeritud andmebaasi formaati, mis võimaldab andmeid laadida välisest hoidlast dünaamiliselt vastavalt vajadusele, ilma et oleks vaja kogu andmebaasi eelnevalt kohalikku süsteemi kopeerida. Praegu toetab CBS-i kasutamine Azure Blob Storage ja Google Cloud Storage. Kõik tavalist SQLite-d toetavad rakendused saavad kasutada CBS-i.

VFS-moodul võib töötada taustal ja aktiivrežiimis. Taustal töötab süsteemis pidevalt taustaprotsess, mis võimaldab välise andmebaasi juurde pääseda ainult lugemisrežiimis, kuid toetab jagatud vahemälu, millega saavad ühiselt pääseda erinevad protsessid. Aktiivrežiimis on lubatud lugemine ja kirjutamine, kuid kasutatakse ainult kohalikke vahemälu hetkeprotsessi jaoks. Igal ajahetkel saab kirjutada ainult üks klient, ja teised kliendid ei näe salvestatud muudatusi, kuni nad ei küsi neid selgelt välja pilvehoidlast. Erinevate kirjutamisettepanekute eristamiseks kasutatakse SQLite tüüpilist lukustamissüsteemi, mis põhineb WAL-logil.

Arendajatele pakutakse ulatuslikku C API-d ja käsurealiidest, mis võimaldavad sooritada selliseid toiminguid nagu välise salvestuse loomine ja puhastamine, andmebaasi laadimine ja väljutamine välisest salvestusest, andmebaasi koopia loomine välises salvestuses, pilvehoidlas olevate andmebaaside nimekirja vaatamine ja mittekasutatavate plokkide eemaldamine pilvehoidlast.

LibSQL projekti arendajad (ulatuslik fork SQLite-st) on kuulutanud välja SQLite serveriversiooni — sqld, mis võimaldab organiseerida jagatud andmebaasi tööd, kuhu kliendid saavad ühenduda PostgreSQL või HTTP protokolli rakendamise kaudu. Näiteks sqld-iga ühendamiseks võivad kasutada olemasolevad klientteegid, mis on loodud PostgreSQL andmebaasi jaoks, sh CLI-liides psql. Sqld serveriga saab samuti suhelda HTTP-protokolli alusel põhineva API kaudu, mis lihtsustab veebirakendustega integreerimist. Sqld kood on kirjutatud Rust keeles ja levitatakse MIT litsentsi alusel.

sqld kasutusvaldkondade hulka kuulub varundamine, replikeerimine teistele süsteemidele ja juurdepääsu korraldamine SQLite andmebaasile serverivabades infrastruktuurides, kus puudub püsiv salvestus ja ei ole võimalik hallata andmebaasi kohalikus failis. Serverivabades süsteemides saab sqld-ga töötav andmebaas replikeerida teistest. serverid. Kõrge kättesaadavuse ja tõrke talumise tagamiseks toetatakse integreerimist mvSQLite - jaotatud SQLite versiooniga, mis töötab FoundationDB peal. On aktiivse varukoopia hoidmise režiim, mis on teostatud andmebaasi oleku periodilise salvestamise ja muudatuste replikeerimise kaudu WAL-logis olevasse pilvesalvestusse, mis on ühilduv Amazon S3-ga.

Rakendustele on saadaval SQLite-ga ühilduv teek, mis saab laadida LD_PRELOAD kaudu, et liikuda andmete salvestamisest kohalikus failis sqld kaudu töötamisele. SQLite'i laiendusi on võimalik laadida. Klientteegid on ette valmistatud TypeScripti, JavaScripti, Rusti, Go ja Pythoni jaoks. sqld-ga seotud andmebaasi saab kasutada samal ajal SQLite'i tavapärase tööriistaga, st sqld toimib kui kiht, et pakkuda võrgu juurdepääsu andmebaasile, replikeerida ja varundada. Näiteks: # Käivitame serveri SQLite andmebaasi foo.db jaoks: sqld -d foo.db -p 127.0.0.1:5432 —http-listen-addr=127.0.0.1:8000 # Pöördume andmebaasi poole PostgreSQLi utiliitide abil: psql -q postgres://127.0.0.1 # Ühendume kohapeal SQLite tööriistade kaudu andmebaasiga: sqlite3 foo.db # Pöördume HTTP kaudu: curl -s -d "{\"statements\": [\"SELECT * from databases;\"] }" \ http://127.0.0.1:8000

Kokkuvõtteks võib mainida projekti LiteFS, mida arendab ettevõte Fly.io. LiteFS on FUSE moodul, mis korraldab töö ühte ühisse SQLite andmebaasi mitmel hostil. LiteFS replikeerib andmebaasi oleku mitme süsteemi vahel, püüdes faili kirjutamise operatsioone andmebaasiga ja edastades neid teistesse süsteemidesse, kasutades sarnast tehingumehhanismi ning tehingute säilitamist eraldi failis LTX formaadis. LiteFS kood on kirjutatud Go keeles ja jagatakse Apache 2.0 litsentsi alusel.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster