rqlite is a lightweight, distributed DBMS built on top of SQLite. rqlite uses the Raft protocol to achieve consensus across all the instances of the SQLite databases, ensuring that every change made to the system is made to a quorum of SQLite databases, or none at all.[04]
- Website
- http://www.rqlite.com[01]
- Source Code
- https://github.com/rqlite/rqlite[02]
- Developer
- Country of Origin
- US
- Start Year
- 2014 [16]
- Project Type
- Open Source
- Written in
- Go
- Embeds / Uses
- SQLite
- License
- MIT License
For a detailed description of much of the database functionality, consult the [SQLite entry] (https://dbdb.io/db/sqlite).
rqlite is a lightweight, distributed DBMS built on top of SQLite. rqlite uses the Raft protocol to achieve consensus across all the instances of the SQLite databases, ensuring that every change made to the system is made to a quorum of SQLite databases, or none at all.
For a detailed description of much of the database functionality, consult the [SQLite entry] (https://dbdb.io/db/sqlite).[04]
History[05]
rqlite was originally a prototype application, showing how the Raft consensus algorithm could be applied to various software state machines -- in this particular instance a SQLite database.
It has since developed into a full relational database management system.
Concurrency Control
rqlite can service multiple queries concurrently, but actual concurrency depends on the underlying SQLite functionality.
Foreign Keys[06]
Since rqlite uses SQLite as its storage engine, it can make full use of SQLite Foreign Key support.
Indexes[07][08][09][10]
Since rqlite uses SQLite as its storage engine, it can make full use of SQLite Indexes
Isolation Levels[11]
Since rqlite uses SQLite as its storage engine, it offers the same isolation levels as SQLite.
Joins[12]
Since rqlite uses SQLite as its storage engine, it performs Joins in the same manner as SQLite.
Logging
rqlite provides data durability via the Raft consensus system. Every change made to the SQLite database is written to the Raft log, and that log is persisted to disk. In the event of a restart or recovery operation, the SQLite database is completely rebuilt from the data contained in the Raft log.
Query Interface[13]
rqlite is primarily queried via its HTTP(S) API. A query is formed by encapsulating a SQL statement in a HTTP request. And when using the "on disk" mode of rqlite, the SQLite database can also be queried directly.
Storage Architecture[14]
rqlite supports both in-memory and disk-oriented storage. The SQLite database can be stored on disk, or in memory. The Raft log is stored on disk.
Citations
16 sources- http://www.rqlite.com rqlite.com
- GitHub - rqlite/rqlite: The lightweight, fault-tolerant database built on SQLite. Designed to keep your data highly available with minimal effort. · GitHub github.com
- rqlite/DOC at master · rqlite/rqlite · GitHub github.com
- rqlite/README.md at master · rqlite/rqlite · GitHub github.com
- rqlite: replicating SQLite using Raft Consensus - Google Slides google.com
- SQLite Foreign Key Support sqlite.org
- The SQLite R*Tree Module sqlite.org
- Partial Indexes sqlite.org
- Indexes On Expressions sqlite.org
- Database File Format sqlite.org
- Isolation In SQLite sqlite.org
- The Next-Generation Query Planner sqlite.org
- Replicating SQLite with rqlite | Simon Willison’s TILs simonwillison.net
- https://github.com/rqlite/rqlite/blob/master/DOC/DESIGN.md github.com
- Temporary Files Used By SQLite sqlite.org
- Replicating SQLite using Raft Consensus – Philip O'Toole philipotoole.com