Представлен 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

Добавить комментарий