Litestream introducerad med implementering av replikeringssystem för SQLite

Ben Johnson, författare till BoltDB NoSQL-lagring, presenterade Litestream-projektet, som tillhandahåller ett tillägg för att organisera datareplikering i SQLite. Litestream kräver inga ändringar av SQLite och kan fungera med alla program som använder detta bibliotek. Replikering utförs av en separat körd bakgrundsprocess som övervakar ändringar i filer från databasen och överför dem till en annan fil eller till extern lagring. Projektkoden är skriven i Go och distribueras under Apache 2.0-licensen.

All interaktion med databasen utförs genom standard SQLite API, d.v.s. Litestream stör inte direkt driften, påverkar inte prestandan och kan inte skada innehållet i databasen, vilket skiljer Litestream från lösningar som Rqlite och Dqlite. Ändringar spåras genom att aktivera WAL-loggen ("Write-Ahead Log") i SQLite. För att spara lagringsutrymme aggregerar systemet med jämna mellanrum strömmen av ändringar i databassnitt (ögonblicksbilder), ovanpå vilka andra ändringar börjar ackumuleras. Tiden för att skapa skivor anges i inställningarna, till exempel kan du skapa skivor en gång om dagen eller en gång i timmen.

De huvudsakliga tillämpningsområdena för Litestream inkluderar att organisera säkra säkerhetskopior och fördela läsbelastningen över flera servrar. Den stöder överföring av ändringsströmmen till Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage eller någon extern värd som stöder SFTP-protokollet. Om innehållet i huvuddatabasen är skadat kan säkerhetskopian återställas från ett tillstånd som motsvarar en angiven tidpunkt, en specifik ändring, den senaste ändringen eller en specificerad del.

Källa: opennet.ru

Lägg en kommentar