SQLite arendajad loovad eksperimentaalset VFS-moodulit CBS (Cloud Backed SQLite), mis võimaldab andmebaasi sisu hoida mitte kohalikus failis, vaid välises pilvehoidlas. Säilitamiseks kasutatakse spetsiaalselt väliseks säilitamiseks optimeeritud andmebaasivormingut, mis võimaldab andmete laadimist välisest hoidlast dünaamiliselt vastavalt vajadusele, ilma et kogu andmebaasi eelnevalt kohalikku süsteemi kopeeritaks. Praegu toetatakse pilvehoidlatena Azure Blob Storage ja Google Cloud Storage. CBS-ile saavad üle viidud kõik rakendused, mis toetavad tavalise SQLite tööd.
VFS-moodul võib töötada taustal ja aktiivses režiimis. Taustarežiimis töötab süsteemis pidev taustprotsess, mis võimaldab ligipääsu välistele andmebaasidele ainult lugemisrežiimis, kuid toetab jagatud vahemälu, millesse saavad samal ajal ligipääsu erinevad protsessid. Aktiivses režiimis on lubatud lugemine ja kirjutamine, kuid kasutatakse vaid kohaliku protsessi vahemälu. Igal hetkel võib kirjutada ainult üks klient, ning teised kliendid ei näe salvestatud muudatusi, kuni nad need selgesõnaliselt pilveteenusest ei nõua. Erinevate kirjutuspäringute eristamiseks kasutatakse SQLite tüüpilist lukustussüsteemi, mis põhineb WAL-logil.
Arendajatele on saadaval laiendatud C API ja käsurealiides, mis võimaldavad selliseid toiminguid nagu välistesse salvestusse loomine ja puhastamine, andmebaasi laadimine ja tühjendamine välistest salvestustest, andmebaasi koopia loomine välisse salvestusse, andmebaaside nimekirja vaatamine pilvesalvestuses, mittevajalike plokkide eemaldamine pilvesäilitusest.
libSQL projekti arendajate poolt on välja kuulutatud SQLite'i serveriversioon — sqld, mis võimaldab korraldada ühiselt kasutatava andmebaasi tööd, kuhu klientide ühendamine toimub PostgreSQL-i või HTTP-protokolli kaudu. Näiteks saab sqld-le ühendada olemasolevaid klientide teeke, mis on loodud PostgreSQL-i andmebaaside jaoks, sealhulgas CLI-liidese psql. Squld-serverile saab ka juurdepääsu kasutada HTTP-protokolli põhjal põhineva API kaudu, mis lihtsustab integreerimist veebirakendustega. Sqld kood on kirjutatud Rusti keeles ja jagatakse MIT litsentsi alusel.
Sqld rakendusaladeks on märgitud varundamine, replikatsioon teistele süsteemidele ja juurdepääsu korraldamine SQLite andmebaasidele serverivabades infrastruktuurides, kus puudub püsiv salvestus ja kus ei ole võimalik andmebaasi lokaalses failis hoida. Serverivabades süsteemides võib sqld-d töötav andmebaas replitseeruda teistest. serverite. Kõrge saadavuse ja tõrkevastupidavuse tagamiseks toetatakse mvSQLite (FoundationDB peal töötav jaotatud SQLite'i versioon) integreerimist. Aktiivse varukoopia säilitamise režiim on rakendatud andmebaasi olekute ajutiste koopia salvestamise ja muudatuste replikatsiooni kaudu WAL-logs pilve salvestusruumi, mis on ühilduv Amazon S3-ga.
Rakenduste jaoks on saadaval SQLite ühilduv teek, mida saab laadida LD_PRELOAD'i kaudu, et liikuda kohaliku faili salvestamisest töösse sqld kaudu. SQLite'i laienduste laadimine on võimalik. Klienditeegid on valmistatud TypeScripti, JavaScripti, Rusti, Go ja Pythoni jaoks. C andmebaasi, mis on seotud sqld-ga, saab kasutada samal ajal tavapärase SQLite'i tööriistadega, st sqld toimib kui üleminekiht, et pakkuda andmebaasile võrgujuurdepääsu, replikatsiooni ja varukoopiate tegemist. Näiteks: # Käivitame serveri SQLite andmebaasiga foo.db: sqld -d foo.db -p 127.0.0.1:5432 --http-listen-addr=127.0.0.1:8000 # Juurdepääs andmebaasile PostgreSQL utiliitide kaudu: psql -q postgres://127.0.0.1 # Ühendame kohapeal andmebaasiga SQLite tööriistade kaudu: sqlite3 foo.db # Juurdepääs HTTP kaudu: curl -s -d "{\"statements\": [\"SELECT * from databases;\"] }" \ http://127.0.0.1:8000
Kokkuvõttes võib mainida projekti LiteFS, mida arendab ettevõte Fly.io. LiteFS on FUSE-modul, mis korraldab töötamise ühisest SQLite andmebaasist mitmel hostil. LiteFS replitseerib andmebaasi olekute vahel mitme süsteemi kaudu, haarates andmefaili kirjutamise operatsioone ning edastades neid teistesse süsteemidesse, kasutades sarnast tehingumehhanismi ja tehingute salvestamist eraldi LTX-formaadiga failis. LiteFSi kood on kirjutatud Go keeles ja levitatakse Apache 2.0 litsentsi alusel.
Allikas: opennet.ru
