Zhvilluesit e SQLite po zhvillojnĂ« njĂ« modul eksperimental VFS, CBS (Cloud Backed SQLite), qĂ« lejon ruajtjen e pĂ«rmbajtjes sĂ« bazĂ«s sĂ« tĂ« dhĂ«nave jo nĂ« njĂ« skedar lokal, por nĂ« njĂ« ruajtje cloud tĂ« jashtme. PĂ«r ruajtje pĂ«rdoret njĂ« format i optimizuar nĂ« mĂ«nyrĂ« tĂ« veçantĂ« pĂ«r ruajtje tĂ« jashtme, qĂ« lejon ngarkimin e tĂ« dhĂ«nave nga ruajtja e jashtme nĂ« mĂ«nyrĂ« dinamike sipas nevojĂ«s, pa kopjimin paraprak tĂ« tĂ« gjithĂ« BD-sĂ« nĂ« sistemin lokal. NĂ« momentin, ruajtjet cloud qĂ« mbĂ«shteten pĂ«rfshijnĂ« Azure Blob Storage dhe Google Cloud Storage. Ădo aplikacion qĂ« mbĂ«shtet punĂ«n me SQLite tĂ« zakonshĂ«m mund tĂ« kalojĂ« nĂ« pĂ«rdorimin e CBS.
Moduli VFS mund të funksionojë në mënyrë të prapambetur dhe aktive. Në mënyrë prapambetëse, në sistem ekzekutohet vazhdimisht një proces prapambetjesh që lejon aksesin në BD-në e jashtme vetëm në mënyrë leximore, por mbështet një përbashkësi të cache-it, të cilin mund ta aksesojnë bashkërisht procese të ndryshme. Në mënyrë aktive lejohet leximi dhe shkrimi, por përdoret vetëm cache-i lokal i procesit aktual. Në çdo moment, vetëm një klient mund të bëjë shkrim, dhe klientët e tjerë nuk do ta shohin ndryshimin e shkruar derisa të kërkojnë qartë atë nga ruajtja cloud. Për të ndarë kërkesa të ndryshme për shkrim aplikohet një sistem bllokimi tipik i SQLite bazuar në log-un WAL.
Zhvilluesit ofrojnë një API të zgjeruar C dhe një ndërfaqe të komandave për të lejuar kryerjen e operacioneve të tilla si krijimi dhe pastrimi i ruajtjes së jashtme, ngarkimi dhe shkarkimi i BD-së në/nga ruajtja e jashtme, krijimi i një kopjeje të BD-së në ruajtjen e jashtme, shikimi i listës së BD-ve në ruajtjen cloud, dhe fshirja e blloqeve të papërdorura nga ruajtja cloud.
Veçmas, zhvilluesit e projektit libSQL (njĂ« pĂ«rçues i zgjeruar i SQLite) kanĂ« njoftuar njĂ« version server tĂ« SQLite â sqld, qĂ« lejon organizimin e funksionimit tĂ« njĂ« DBMS tĂ« zakonshĂ«m, me lidhjen e klientĂ«ve qĂ« bĂ«het pĂ«rmes pĂ«rdorimit tĂ« protokollit PostgreSQL ose HTTP. PĂ«r shembull, pĂ«r lidhjen me sqld mund tĂ« pĂ«rdoren bibliotekat ekzistuese tĂ« klientit tĂ« krijuara pĂ«r DBMS PostgreSQL, dhe, pĂ«rveç tĂ« tjerash, ndĂ«rfaqja CLI psql. Edhe nĂ« serverin sqld mund tĂ« aksesoheni nĂ«pĂ«rmjet njĂ« API bazuar nĂ« protokollin HTTP, qĂ« lehtĂ«son integrimin me aplikacionet web. Kodi sqld Ă«shtĂ« shkruar nĂ« gjuhĂ«n Rust dhe shpĂ«rndahet nĂ«n licencĂ«n MIT.
Si fushat e aplikimit sqld përmenden rezervimi, replikimi në sisteme të tjera dhe organizimi i aksesit në DB SQlite në infrastrukturat pa server, ku nuk ka magazinim të përhershëm dhe nuk është e mundur të sigurohet mbajtja e bazës në një skedar lokal. Në sistemet pa server, DB me të cilën punon sqld mund të replikohet nga të tjera. serverësh. Për të siguruar disponueshmëri të lartë dhe qëndresë ndaj dështimeve, mbështetet integrimi me mvSQLite (varianti i shpërndarë i SQLite, që funksionon mbi FoundationDB). Ka një mod për mbajtjen e një kopjeje aktive, e realizuar përmes ruajtjes periodike të snapshots me gjendjen e DB dhe replikimin e ndryshimeve nga WAL-log në një magazinë cloud, e cila është e përputhshme me Amazon S3.
PĂ«r aplikacionet 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 pĂ«rmes sqld. ĂshtĂ« e mundur tĂ« ngarkohen zgjerime pĂ«r SQLite. Bibliotekat kliente janĂ« pĂ«rgatitur pĂ«r TypeScript, JavaScript, Rust, Go dhe Python. Me DB, e cila Ă«shtĂ« e lidhur me sqld, Ă«shtĂ« e mundur tĂ« punoni njĂ«kohĂ«sisht me anĂ« tĂ« mjeteve standarde tĂ« SQLite, pra sqld vepron si njĂ« shtresĂ« pĂ«r tĂ« ofruar akses nĂ« rrjet nĂ« DB, replikim dhe rezervim. 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 # Qasuni nĂ« DB duke pĂ«rdorur mjete PostgreSQL: psql -q postgres://127.0.0.1 # Lidheni lokalisht me DB duke pĂ«rdorur mjete SQLite: sqlite3 foo.db # Qasuni pĂ«rmes HTTP: curl -s -d "{\"statements\": [\"SELECT * from databases;\"] }" \ http://127.0.0.1:8000
Në përfundim, mund të përmendet projekti LiteFS, i zhvilluar nga kompania Fly.io. LiteFS është një modul FUSE për organizimin e punës me një DB të përbashkët SQLite në disa host-e. LiteFS replikohet gjendja e DB mes disa sistemeve përmes kapjes së operacioneve të shkruarjes në skedarin me DB, dhe transmetimin e 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
