Ben Johnson, autor NoSQL úložiště BoltDB, představil projekt Litestream, který poskytuje rozšíření pro organizaci replikace dat v SQLite. Litestream nevyžaduje žádné změny v SQLite a může pracovat s jakýmikoliv aplikacemi, které tuto knihovnu používají. Replikace je zajišťována samostatným běžícím procesem na pozadí, který sleduje změny v souborech databáze a přenáší je do jiného souboru nebo do externího úložiště. Kód projektu je napsán v jazyce Go a je šířen pod licencí Apache 2.0.
Všechna interakce s databází probíhá prostřednictvím standardního API SQLite, tj. Litestream přímo nezasahuje do práce, neovlivňuje výkon a nemůže poškodit obsah databáze, což výhodně odlišuje Litestream od takových řešení, jako jsou Rqlite a Dqlite. Změny jsou sledovány prostřednictvím zapnutí WAL logu ("Write-Ahead Log") v SQLite. Pro úsporu místa v úložišti systém pravidelně agreguje tok změn do snímků (snapshotů) databáze, na které se začínají hromadit další změny. Čas vytvoření snímků je uveden v nastaveních, například je možné vytvářet snímky jednou za den nebo jednou za hodinu.
Mezi hlavní oblasti použití Litestream patří organizace bezpečné zálohy a distribuce zátěže pro čtení na více. serveryPodporuje přenos toku změn do úložišť Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage nebo na jakýkoli externí host, který podporuje protokol SFTP. V případě poškození obsahu hlavní databáze může být záloha obnovena do stavu odpovídajícího určenému okamžiku, určité změně, poslední změně nebo zadanému snímku.
Zdroj: opennet.ru
