You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
2.9 KiB
Markdown
32 lines
2.9 KiB
Markdown
# rqlite
|
|
You can find details on the design and implementation of rqlite from [these blog posts](http://www.philipotoole.com/tag/rqlite/).
|
|
|
|
rqlite was also discussed at th [GoSF](http://www.meetup.com/golangsf/) [April 2016](http://www.meetup.com/golangsf/events/230127735/) Meetup. You can find the slides [here](http://www.slideshare.net/PhilipOToole/rqlite-replicating-sqlite-via-raft-consensu).
|
|
|
|
## Node design
|
|
The diagram below shows a high-level view of a rqlite node.
|
|
|
|
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ ┌ ─ ─ ─ ─ ┐
|
|
Clients Other
|
|
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘ │ Nodes │
|
|
│ ─ ─ ─ ─ ─
|
|
│ ▲
|
|
│ │
|
|
│ │
|
|
▼ ▼
|
|
┌─────────────────────────────┐ ┌───────────────┐
|
|
│ HTTP(S) │ │ TCP │
|
|
└─────────────────────────────┘ └───────────────┘
|
|
┌───────────────────────────────────────────────┐
|
|
│ Raft (hashicorp/raft) │
|
|
└───────────────────────────────────────────────┘
|
|
┌───────────────────────────────────────────────┐
|
|
│ matt-n/go-sqlite3 │
|
|
└───────────────────────────────────────────────┘
|
|
┌───────────────────────────────────────────────┐
|
|
│ sqlite3.c │
|
|
└───────────────────────────────────────────────┘
|
|
|
|
## Log Compaction
|
|
rqlite automatically performs log compaction. After a fixed number of changes rqlite snapshots the SQLite database, and truncates the Raft log. This is a technical feature of the Raft consensus system, and most users of rqlite need not be concerned with this.
|