Ben Johnson, autori i NoSQL-arkivit BoltDB, prezantoi projektin Litestream, i cili ofron një shtesë për organizimin e replikimit të të dhënave në SQLite. Litestream nuk kërkon ndryshime në SQLite dhe mund të punojë me çdo aplikacion që përdor këtë bibliotekë. Replikimi merret nga një proces background që funksionon veçmas, i cili ndjek ndryshimet në skedarët e bazës së të dhënave dhe i transferon ato në një skedar tjetër ose në një ruajtje të jashtme. Kodi i projektit është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0.
Të gjitha ndërveprimet me bazën e të dhënave kryhen përmes API-t të standardizuar të SQLite, dmth. Litestream nuk ndërhyn drejtpërdrejt në funksionimin, nuk ndikon në performancë dhe nuk mund të dëmtojë përmbajtjen e bazës së të dhënave, që e bën Litestream të veçantë nga zgjidhjet si Rqlite dhe Dqlite. Ndryshimet ndjeken përmes aktivizimit të WAL-journal ("Write-Ahead Log") në SQLite. Për të kursyer hapësirën në ruajtje, sistemi periodikisht agregon fluksin e ndryshimeve në instant-shkrepje (snapshot) të bazës së të dhënave, mbi të cilat fillojnë të akumulohen ndryshime të tjera. Koha e krijimit të instant-shkrepjeve specifikohet në cilësimet, për shembull, mund të krijohen instant-shkrepje një herë në ditë ose një herë në orë.
Si fusha kryesore e përdorimit, Litestream përmendet organizimi i kopjimit të sigurt dhe shpërndarja e ngarkesës së leximit në disa. servera. Transferimi i fluksit të ndryshimeve mbështetet në ruajtjet Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage ose në çdo host të jashtëm që mbështet protokollin SFTP. Në rast se përmbajtja e bazës kryesore të të dhënave dëmtohet, një kopje rezervë mund të rikuperohet nga një gjendje që përputhet me një moment të caktuar në kohë, një ndryshim të specifikuar, ndryshimin e fundit ose një instant-shkrepje të caktuar.
Burimi: opennet.ru
