Litestream představil implementaci replikačního systému pro SQLite

Ben Johnson, autor úložiště BoltDB NoSQL, představil projekt Litestream, který poskytuje doplněk pro organizaci replikace dat v SQLite. Litestream nevyžaduje žádné změny SQLite a může pracovat s jakoukoli aplikací, která tuto knihovnu používá. Replikace se provádí samostatně prováděným procesem na pozadí, který sleduje změny v souborech z databáze a přenáší je do jiného souboru nebo na externí úložiště. Kód projektu je napsán v Go a distribuován pod licencí Apache 2.0.

Veškerá interakce s databází probíhá přes standardní SQLite API, tzn. Litestream přímo nezasahuje do provozu, neovlivňuje výkon a nemůže poškodit obsah databáze, což Litestream odlišuje od řešení jako Rqlite a Dqlite. Změny jsou sledovány povolením WAL logu (“Write-Ahead Log”) v SQLite. Aby se ušetřil úložný prostor, systém pravidelně agreguje proud změn do databázových řezů (snapshotů), nad nimiž se začnou hromadit další změny. Čas vytváření řezů je uveden v nastavení, například řezy můžete vytvářet jednou denně nebo jednou za hodinu.

Mezi hlavní oblasti použití Litestream patří organizování bezpečných záloh a distribuce zatížení čtení na více serverů. Podporuje přenos toku změn do Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage nebo jakéhokoli externího hostitele, který podporuje protokol SFTP. Pokud je obsah hlavní databáze poškozen, lze záložní kopii obnovit ze stavu, který odpovídá zadanému okamžiku, konkrétní změně, poslední změně nebo zadanému řezu.

Zdroj: opennet.ru

Přidat komentář