Litestream geïntroduceerd met implementatie van replicatiesysteem voor SQLite

Ben Johnson, auteur van de BoltDB NoSQL-opslag, presenteerde het Litestream-project, dat een add-on biedt voor het organiseren van gegevensreplicatie in SQLite. Litestream vereist geen wijzigingen aan SQLite en kan werken met elke applicatie die deze bibliotheek gebruikt. Replicatie wordt uitgevoerd door een afzonderlijk uitgevoerd achtergrondproces dat wijzigingen in bestanden uit de database bewaakt en deze overbrengt naar een ander bestand of naar externe opslag. De projectcode is geschreven in Go en gedistribueerd onder de Apache 2.0-licentie.

Alle interactie met de database wordt uitgevoerd via de standaard SQLite API, d.w.z. Litestream interfereert niet direct met de werking, heeft geen invloed op de prestaties en kan de inhoud van de database niet beschadigen, wat Litestream onderscheidt van oplossingen als Rqlite en Dqlite. Wijzigingen worden bijgehouden door het WAL-logboek (“Write-Ahead Log”) in SQLite in te schakelen. Om opslagruimte te besparen, voegt het systeem de stroom wijzigingen periodiek samen in databasesegmenten (snapshots), waarna andere wijzigingen zich beginnen op te stapelen. De tijd voor het maken van plakjes wordt aangegeven in de instellingen; u kunt bijvoorbeeld één keer per dag of één keer per uur plakjes maken.

De belangrijkste toepassingsgebieden van Litestream zijn onder meer het organiseren van veilige back-ups en het verdelen van de leeslast over meerdere servers. Het ondersteunt het overbrengen van de wijzigingsstroom naar Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage of een externe host die het SFTP-protocol ondersteunt. Als de inhoud van de hoofddatabase beschadigd is, kan de back-upkopie worden hersteld vanuit een staat die overeenkomt met een bepaald tijdstip, een specifieke wijziging, de laatste wijziging of een gespecificeerd segment.

Bron: opennet.ru

Voeg een reactie