Litestream uveden z implementacijo replikacijskega sistema za SQLite

Ben Johnson, avtor shrambe BoltDB NoSQL, je predstavil projekt Litestream, ki ponuja dodatek za organiziranje replikacije podatkov v SQLite. Litestream ne zahteva nobenih sprememb SQLite in lahko deluje s katero koli aplikacijo, ki uporablja to knjižnico. Replikacija se izvaja z ločeno izvedenim procesom v ozadju, ki spremlja spremembe v datotekah iz baze podatkov in jih prenese v drugo datoteko ali v zunanji pomnilnik. Koda projekta je napisana v Go in se distribuira pod licenco Apache 2.0.

Vsa interakcija z bazo podatkov se izvaja prek standardnega API-ja SQLite, tj. Litestream neposredno ne posega v delovanje, ne vpliva na delovanje in ne more poškodovati vsebine baze podatkov, kar razlikuje Litestream od rešitev, kot sta Rqlite in Dqlite. Spremembam se sledi z omogočanjem dnevnika WAL (»Write-Ahead Log«) v SQLite. Da prihrani prostor za shranjevanje, sistem občasno združi tok sprememb v rezine baze podatkov (posnetke), na vrhu katerih se začnejo kopičiti druge spremembe. Čas za ustvarjanje rezin je naveden v nastavitvah, na primer, rezine lahko ustvarite enkrat na dan ali enkrat na uro.

Glavna področja uporabe za Litestream vključujejo organiziranje varnih varnostnih kopij in porazdelitev bralne obremenitve na več strežnikov. Podpira premik toka sprememb v Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage ali katerega koli zunanjega gostitelja, ki podpira protokol SFTP. Če je vsebina glavne baze podatkov poškodovana, je mogoče varnostno kopijo obnoviti iz stanja, ki ustreza določeni časovni točki, določeni spremembi, zadnji spremembi ali določeni rezini.

Vir: opennet.ru

Dodaj komentar