Представлено Litestream з реалізацією системи реплікації для SQLite

Бен Джонсон (Ben Johnson), автор NoSQL-сховища BoltDB, представив проект Litestream, що надає надбудову для організації реплікації даних у SQLite. Litestream не вимагає внесення змін до SQLite і може працювати з будь-якими програмами, які використовують цю бібліотеку. Реплікацією займається фоновий процес, що окремо виконується, який відстежує зміни у файлах з БД і переносить їх в інший файл або в зовнішнє сховище. Код проекту написаний мовою Go та поширюється під ліцензією Apache 2.0.

Вся взаємодія з БД виробляється через штатний API SQLite, тобто. Litestream безпосередньо не втручається в роботу, не впливає на продуктивність і не може пошкодити вміст БД, що вигідно відрізняє Litestream від таких рішень, як Rqlite та Dqlite. Зміни відстежуються через увімкнення WAL-журналу («Write-Ahead Log») у SQLite. Для економії місця у сховищі система періодично агрегує потік змін у зрізи (снапшоти) БД, поверх яких починають накопичуватися інші зміни. Час створення зрізів вказується в налаштуваннях, наприклад, можна формувати зрізи щодня або щогодини.

Як основні області застосування Litestream згадується організація безпечного резервного копіювання та розподіл навантаження на читання на кілька серверів. Підтримується перенесення потоку змін до сховищ Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage або будь-який зовнішній хост, що підтримує протокол SFTP. У разі пошкодження вмісту основної БД резервна копія може бути відновлена ​​зі стану, що відповідає вказаному моменту часу, певній зміні, останній зміні або заданому зрізу.

Джерело: opennet.ru

Додати коментар або відгук