Zhvilluesit e SQLite po zhvillojnĂ« njĂ« modul eksperimental VFS CBS (Cloud Backed SQLite), i cili lejon ruajtjen e pĂ«rmbajtjes sĂ« bazĂ«s sĂ« tĂ« dhĂ«nave jo nĂ« njĂ« skedar lokal, por nĂ« njĂ« ruajtje tĂ« jashtme nĂ« cloud. PĂ«r ruajtjen pĂ«rdoret njĂ« format i optimizuar veçmas pĂ«r ruajtje tĂ« jashtme, i cili lejon ngarkimin dinamik tĂ« tĂ« dhĂ«nave nga ruajtja e jashtme sipas nevojĂ«s, pa e kopjuar paraprakisht tĂ« gjithĂ« DB-nĂ« nĂ« sistemin lokal. Tani pĂ«r tani, mbĂ«shtetet ruajtja nĂ« cloud si Azure Blob Storage dhe Google Cloud Storage. Ădo aplikacion qĂ« mbĂ«shtet punĂ«n me SQLite-nĂ« e zakonshme mund tĂ« kalojĂ« nĂ« pĂ«rdorimin e CBS.
Moduli VFS mund të funksionojë në modalitetin e prapaskenës dhe në modalitetin aktiv. Në modalitetin e prapaskenës, një proces prapaskenë ekzekutohet në mënyrë të vazhdueshme në sistem, duke lejuar aksesin në një DB të jashtme vetëm në modalitetin e leximit, por duke mbështetur një cache të përbashkët që mund të përdoret nga procese të ndryshme. Në modalitetin aktiv, lejohet leximi dhe shkruajta, por përdoret vetëm cache lokal i procesit aktual. Në çdo moment vetëm një klient mund të realizojë shkruajta, dhe klientët e tjerë nuk do të shohin ndryshimet e shkruara deri sa t'i kërkojnë ato në mënyrë eksplicite nga ruajtja cloud. Për ndarjen e kërkesave të ndryshme për shkruajta, aplikohet një sistem standard bllokimi SQLite bazuar në log-un WAL.
Zhvilluesve u ofrohet një API i zgjeruar C dhe një ndërfaqe e komandave që mundëson kryerjen e operacioneve të tilla si krijimi dhe pastrimi i ruajtjes së jashtme, ngarkimi dhe shkarkimi i DB-së në/nga ruajtjen e jashtme, krijimi i një kopjeje të DB-së në ruajtjen e jashtme, shikimi i listës së DB-ve në ruajtjen cloud, dhe fshirja e bllokimeve të pazbatuara nga ruajtja cloud.
Zhvillohet veçmas nga zhvilluesit e projektit libSQL (njĂ« fork i avancuar i SQLite), Ă«shtĂ« shpallur njĂ« version serveri i SQLite â sqld, i cili lejon organizimin e punĂ«s sĂ« njĂ« DBMS tĂ« ndarĂ«, ku lidhja e klientĂ«ve bĂ«het pĂ«rmes pĂ«rdorimit tĂ« protokollit PostgreSQL ose HTTP. PĂ«r shembuj, pĂ«r t'u lidhur me sqld mund tĂ« pĂ«rdoren bibliotekat ekzistuese tĂ« klientĂ«ve tĂ« krijuara pĂ«r DBMS PostgreSQL, dhe, ndĂ«r tĂ« tjera, ndĂ«rfaqja CLI psql. Serveri sqld gjithashtu mund tĂ« arrihet duke pĂ«rdorur API-nĂ« qĂ« bazohet nĂ« protokollin HTTP, e cila thjeshton integrimin me aplikacionet web. Kodi i sqld Ă«shtĂ« shkruar nĂ« gjuhĂ«n Rust dhe shpĂ«rndahet nĂ«n licencĂ«n MIT.
Si fusha përdorimi të sqld përmenden kopjimi, replikimi në sisteme të tjera dhe organizimi i aksesit në DB SQlite në infrastrukturat pa serverë, ku nuk ka një depo të qëndrueshme dhe nuk është e mundur të sigurohet mbajtja e bazës në një skedar lokal. Në sistemet pa serverë, DB që punon me sqld mund të replikojë nga të tjerë servera. Për të siguruar disponueshmëri të lartë dhe qëndrueshmëri ndaj dështimeve, mbështetet integrimi me mvSQLite (varianti i shpërndarë i SQLite që punon mbi FoundationDB). Ekziston një mod të mbështetjes së kopjes rezervë aktive, e implementuar përmes ruajtjes periodike të kopjeve të gjendjes së DB-së dhe replika e ndryshimeve nga WAL-logu në një depo të përputhshme me Amazon S3.
PĂ«r aplikacioneve ofrohet njĂ« bibliotekĂ« e pĂ«rputhshme me SQLite, e cila mund tĂ« ngarkohet pĂ«rmes LD_PRELOAD pĂ«r kalimin nga ruajtja e tĂ« dhĂ«nave nĂ« njĂ« skedar lokal nĂ« punĂ«n me sqld. Ngarkimi i zgjerimeve pĂ«r SQLite Ă«shtĂ« i mundur. Bibliotekat klienti janĂ« pĂ«rgatitur pĂ«r TypeScript, JavaScript, Rust, Go dhe Python. Me DB-nĂ« e lidhur me sqld, mund tĂ« punohet njĂ«kohĂ«sisht me mjetet standarde tĂ« SQLite, pra, sqld vepron si njĂ« shtresĂ« pĂ«r tĂ« ofruar qasje nĂ« rrjet nĂ« DB, replikim dhe kopjim rezervĂ«. PĂ«r shembull: # Nisni serverin pĂ«r SQLite DB foo.db: sqld -d foo.db -p 127.0.0.1:5432 âhttp-listen-addr=127.0.0.1:8000 # Bashkohuni me DB-nĂ« pĂ«rmes mjeteve PostgreSQL: psql -q postgres://127.0.0.1 # Lidheni lokalisht me DB-nĂ« pĂ«rmes mjeteve SQLite: sqlite3 foo.db # Bashkohuni pĂ«rmes HTTP: curl -s -d "{\"statements\": [\"SELECT * from databases;\"]} " \ http://127.0.0.1:8000
Në përfundim, mund të përmendim projektin LiteFS, të zhvilluar nga kompania Fly.io. LiteFS është një modul FUSE për organizimin e punës me një bazë të dhënash SQLite të përbashkët në disa hoste. LiteFS replikon gjendjen e bazës së të dhënave midis disa sistemeve përmes kapjes së operacioneve të shkrimit në skedarin e bazës së të dhënave dhe translacionit të këtyre operacioneve në sisteme të tjera, duke përdorur një mekanizëm të ngjashëm me transaksionet dhe ruajtjen e transaksioneve në një skedar të veçantë në formatin LTX. Kodi i LiteFS është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0.
Burimi: opennet.ru
