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
9 years ago
|
# rqlite
|
||
|
You can find details on the design and implementation of rqlite from [these blog posts](http://www.philipotoole.com/tag/rqlite/).
|
||
|
|
||
9 years ago
|
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).
|
||
|
|
||
9 years ago
|
## Node design
|
||
9 years ago
|
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 │
|
||
|
└───────────────────────────────────────────────┘
|
||
9 years ago
|
|
||
|
## 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.
|