August 6th, 2024

Building rqlite 9.0: Cutting disk usage by half

Rqlite 9.0 will reduce disk usage by 50% using Referential Snapshotting, eliminating duplicate snapshots, improving snapshotting speed, and enhancing node restart times while focusing on SQLite WAL management and upgrades.

Read original articleLink Icon
CuriosityExcitementConcern
Building rqlite 9.0: Cutting disk usage by half

rqlite, a distributed relational database built on SQLite, is set to release version 9.0 with a primary focus on reducing disk usage by approximately 50%. This reduction will be achieved through a redesign that addresses the main contributors to disk consumption: the Raft log, the working SQLite database, and the snapshot of the SQLite database. The new approach, termed Referential Snapshotting, will eliminate the need to store a duplicate snapshot of the working SQLite database in the Raft system. Instead, rqlite will utilize a reference, such as a checksum, to validate the main SQLite file against the snapshot store, thus avoiding unnecessary duplication. This change is expected to lead to faster snapshotting processes and significantly improved node restart times, as the working SQLite database will remain unchanged during snapshotting. The development team is currently focused on refining details such as SQLite Write-Ahead Log management and ensuring seamless upgrades from previous versions. Overall, the transition to rqlite 9.0 aims to enhance efficiency and performance while maintaining the integrity of the database system.

- rqlite 9.0 aims to cut disk usage by 50% through a redesign.

- The new Referential Snapshotting method eliminates duplicate snapshots.

- Faster snapshotting and improved node restart times are expected outcomes.

- Development is focused on SQLite WAL management and upgrade processes.

- The changes are designed to enhance overall efficiency and performance.

AI: What people are saying
The comments on the Rqlite 9.0 article reflect a mix of curiosity, appreciation, and concern regarding the update.
  • Users express interest in comparing Rqlite's performance with other Go-based distributed databases.
  • Some commenters praise the article for its clarity and informative content.
  • There are concerns about the rapid version updates potentially affecting backward compatibility.
  • One user mentions their positive experience with Rqlite, despite not facing disk usage issues.
  • There is a desire for alternative implementations, such as a Rust version.
Link Icon 11 comments
By @west0n - 4 months
I'm curious about how rqlite's performance compares to other distributed databases developed in Go, such as CockroachDB, Vitess, and TiDB.
By @usr1106 - 4 months
It's been many years that I haven't been working actively with databases anymore, but I have never heard about Raft or rq before. Is that system used by many / by significant players?
By @simplify - 4 months
Well-written article. Introduces what the library is/does, gives background context, includes a high-level overview of the system, and demonstrates how it solves the problem.
By @yNeolh - 4 months
A little off-topic, but I love that the first paragraph describes the project. Usually, posts exclude that information, and the landing is not of more help.
By @djbusby - 4 months
Cool! We use this but never had too much problems with disk usage (I/o or size). But, were only using to deploy configs across multiple nodes. And we read the local copy directly!
By @Lord_Zero - 4 months
How does this compare to litestream?
By @zxilly - 4 months
well, still didn't support embed as library.
By @niux - 4 months
Absolutely amazing news! Thank you Philip!
By @commercialnix - 4 months
Looking forward to a Rust implementation.
By @ku1ik - 4 months
Version 9.0 already? To me this unfortunately signals lack of focus and/or disregard for backward compatibility, which means unnecessary churn for me as user of this project. Hard pass.