rqlite v3: Globally replicating SQLite

rqlite on GitHubrqlite is an open-source distributed relational database, which uses SQLite as its storage engine. rqlite is written in Go and uses Raft to achieve consensus across a set of SQLite databases. It gracefully handles leader election, and can tolerate machine failure.

With the v3 release series, rqlite can now replicate SQLite databases on a global scale, with very little effort. Let’s see it in action using the AWS EC2 cloud.

Continue reading rqlite v3: Globally replicating SQLite

rqlite v3.0.1 released with leader redirection

rqliterqlite is an open-source distributed relational database, with SQLite as its storage engine. v3.0.1 has been released and it is a significant upgrade relative to the 2.0 series. The 3.0 series allows more sophisticated clusters to be built and simplifies rqlite client coding requirements.

Continue reading rqlite v3.0.1 released with leader redirection

What I learned from programming databases

databaseProgramming a database is fascinating work. I’ve been deeply involved with developing open source databases for the past two years and programming a database is possibly the most instructive project one can ever complete as a software developer.

What’s really striking however, is how much my attitude towards databases has changed over the past 6 years. From a state of disinterest, I’ve come to think of these systems as a pinnacle of software engineering.

Continue reading What I learned from programming databases

rqlite – replicated SQLite with new Raft consensus and API

Raft consensus protocolrqlite provides robust replication for SQLite databases using the Raft consensus protocol. Coded in Go it ensures that all changes made to the leader SQLite database are replicated to all other nodes in the cluster, providing fault-tolerance and reliability.

It’s been 18 months since development of rqlite first started and it’s time for version 2.

Continue reading rqlite – replicated SQLite with new Raft consensus and API

rqlite and Hashicorp Raft Consensus

Hashicorp RaftI’ve started replacing go-raft within rqlite with the implementation from Hashicorp. go-raft is no longer maintained, and I’ve good experience with the Hashicorp code, due to my work with InfluxDB and hraftd. I’m also going to change the API, so it’s more useful. The existing implementation and API has been tagged as v1.0, so it’s still available.

You can follow the work on this branch, and I hope to merge it to master in the near future.

Philip O'Toole