Ben Johnson, BoltDB NoSQL-andmete salvestustehnoloogia autor, tutvustas projekti Litestream, mis pakub lisakihti andmete replikatsiooni korraldamiseks SQLite'is. Litestream ei nõua SQLite'is muudatusi ja saab töötada igasuguste rakendustega, mis seda teeki kasutavad. Replikatsioon toimub eraldi töötava taustaprotsessi kaudu, mis jälgib andmebaasifailides toimuvaid muudatusi ja edastab need teise faili või välisse salvestusse. Projekti kood on kirjutatud keeles Go ja levitatakse Apache 2.0 litsentsi alusel.
Kõik andmebaasi interaktsioonid toimuvad läbi SQLite'i standard API, st Litestream ei sekku otseselt tööprotsessidesse, ei mõjuta jõudlust ja ei saa andmebaasi sisu kahjustada, mis eristab Litestream'i sellistest lahendustest nagu Rqlite ja Dqlite. Muudatusi jälgitakse, aktiveerides SQLite'is WAL-logi („Write-Ahead Log”). Salvestusruumi kokkuhoiu eesmärgil koguneb süsteem perioodiliselt muudatused andmebaasi lõikudes (snapshot'idena), mille peale hakkavad kuhjuma teised muudatused. Lõikude loomise aeg määratakse seadistustes, näiteks saab luua lõike iga päev või iga tunni järel.
Litestreami peamised rakendusalad hõlmavad turvalise varundamise korraldamist ja lugemise koormuse jagamist mitme vahel. serveriteToetatakse muutuste voogude edastamist Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage või igale välisele hostile, mis toetab SFTP protokolli. Andmebaasi sisu kahjustumise korral saab varukoopia taastada määratud ajahetke, kindla muudatuse, viimase muudatuse või määratud lõike seisundisse.
Allikas: opennet.ru
