Programeri SQLite razvijaju eksperimentalni VFS modul CBS (Cloud Backed SQLite), koji omogućava pohranu sadržaja baze podataka ne u lokalnu datoteku, već u vanjsko oblako. Za pohranu se koristi posebno optimizirani format baze podataka za vanjsku pohranu, koji omogućava dinamičko učitavanje podataka iz vanjskog skladišta prema potrebi, bez prethodnog kopiranja cijele Baze podataka na lokalni sustav. Trenutno se podržavaju Azure Blob Storage i Google Cloud Storage. Svaka aplikacija koja podržava rad s običnim SQLite može se prebaciti na CBS.
VFS modul može raditi u pozadinskom i aktivnom režimu. U pozadinskom režimu u sustavu neprestano radi pozadinski proces koji omogućava pristup vanjskoj Bazi podataka samo u režimu čitanja, no podržava zajednički predmemoriju koja može koristiti više procesa. U aktivnom režimu dopušteni su čitanje i pisanje, no koristi se samo lokalna predmemorija trenutnog procesa. U svakom trenutku samo jedan klijent može izvršavati pisanje, a ostali klijenti neće vidjeti zabilježene promjene sve dok ih izričito ne zatraže iz oblaka. Za razdvajanje različitih zahtjeva za pisanje primjenjuje se standardni sustav zaključavanja SQLite temeljen na WAL logu.
Programerima je dostupan prošireni C API i sučelje naredbenog retka, koje omogućava obavljanje operacija kao što su stvaranje i čišćenje vanjskog skladišta, učitavanje i preuzimanje Baze podataka u/iz vanjskog skladišta, stvaranje kopije Baze podataka u vanjskom skladištu, pregled popisa Baza podataka u oblaku, te brisanje neiskorištenih blokova iz vanjskog skladišta.
Odvojeno, programeri projekta libSQL (prošireni fork SQLite) najavili su serversku verziju SQLite — sqld, koja omogućava organizaciju rada zajedničke DBMS, pri čemu se povezivanje klijenata odvija korištenjem PostgreSQL ili HTTP protokola. Na primjer, za povezivanje sa sqld mogu se koristiti postojeće klijentske biblioteke izrađene za DBMS PostgreSQL, uključujući CLI sučelje psql. Sqld server također se može koristiti putem API-ja temeljenog na HTTP protokolu, što olakšava integraciju s web aplikacijama. Kod sqld napisan je na jeziku Rust i distribuira se pod MIT licencom.
Kao područja primjene sqld-a ističe se izrada sigurnosnih kopija, replikacija na druge sustave i organizacija pristupa bazi podataka SQlite u beslužbenim infrastrukturnim sustavima, u kojima ne postoji trajno pohranjivanje i nije moguće osigurati vođenje baze u lokalnoj datoteci. U beslužbenim sustavima, baza podataka s kojom radi sqld može se replicirati s drugih poslužitelja. Za osiguranje visoke dostupnosti i otpornosti na kvarove omogućena je integracija s mvSQLite (distribuirana verzija SQLite koja radi iznad FoundationDB). Postoji način održavanja aktivne sigurnosne kopije, realiziran putem periodičnog snimanja trenutnih stanja baze podataka i replikacije promjena iz WAL-loga u oblačno pohranjivanje kompatibilno s Amazon S3.
Za aplikacije je dostupna biblioteka kompatibilna sa SQLite, koja se može učitati putem LD_PRELOAD za prijelaz s pohrane podataka u lokalnoj datoteci na rad preko sqld-a. Moguće je učitati ekstenzije za SQLite. Klijentske biblioteke su pripremljene za TypeScript, JavaScript, Rust, Go i Python. S bazom podataka povezano s sqld-om može se simultano raditi pomoću standardnog alata za SQLite, tj. sqld djeluje kao nadgradnja za pružanje mrežnog pristupa bazi podataka, replikaciju i izradu sigurnosnih kopija. Na primjer: # Pokrećemo poslužitelj za SQLite bazu podataka foo.db: sqld -d foo.db -p 127.0.0.1:5432 —http-listen-addr=127.0.0.1:8000 # Pristupamo bazi podataka pomoću PostgreSQL alata: psql -q postgres://127.0.0.1 # Povezujemo se lokalno na bazu podataka pomoću alata za SQLite: sqlite3 foo.db # Pristupamo putem HTTP-a: curl -s -d "{\"statements\": [\"SELECT * from databases;\"] }" \ http://127.0.0.1:8000
Na kraju se može spomenuti projekt LiteFS, koji razvija tvrtka Fly.io. LiteFS predstavlja FUSE-modul za organizaciju rada s jednom zajedničkom bazom podataka SQLite na nekoliko hostova. LiteFS replicira stanje baze podataka između nekoliko sustava putem presretanja operacija pisanja u datoteku s bazom podataka, i prenosi te operacije na druge sustave, koristeći sličnost mehanizma transakcija i pohranu transakcija u zasebnoj datoteci u formatu LTX. Kod LiteFS-a napisan je na jeziku Go i distribuira se pod licencom Apache 2.0.
Izvor: opennet.ru
