[HN Gopher] Embeddable, replicated and fault tolerant SQL engine...
___________________________________________________________________
Embeddable, replicated and fault tolerant SQL engine based on
Sqlite
Author : KingOfCoders
Score : 71 points
Date : 2022-01-30 09:41 UTC (2 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| stock_toaster wrote:
| Is this like rqlite[1], but in C?
|
| [1]: https://github.com/rqlite/rqlite
| otoolep wrote:
| rqlite author here, no, they are quite different. To quote the
| rqlite FAQ:
|
| "dqlite is library, written in C, that you need to Integrate
| with your own software. That requires programming. rqlite is a
| standalone application -- it's a full RDBMS (albeit a
| relatively simple one). rqlite has everything you need to read
| and write data, and backup, maintain, and monitor the database
| itself.
|
| rqlite and dqlite are completely separate projects, and rqlite
| does not use dqlite. In fact, rqlite was created before
| dqlite."
|
| https://github.com/rqlite/rqlite/blob/master/DOC/FAQ.md#how-...
| keb_ wrote:
| Maybe stupid question, but when would someone choose this or
| rqlite over something like Postgres?
| uniqueuid wrote:
| Some things that come to my mind:
|
| * no tuning (pg_hba, memory, WAL options etc etc.)
|
| * presumably fixed memory consumption (if similar to sqlite)
|
| * raft gives you usable failover out of the box, whereas with
| postgres, you need additional (and complex) solutions
|
| * less operational complexity
| otoolep wrote:
| rqlite author here.
|
| Good summary, I generally agree. rqlite installation is also
| very easy, thanks to Go. Single, statically-linked binary you
| can just drop on your machine. rqlite also has a really
| simple build process (another explicit goal -- just execute
| 'go build') making it easy to build it yourself -- giving you
| a high-level of control over the actual software you run.
|
| https://github.com/rqlite/rqlite/blob/master/CONTRIBUTING.md.
| ..
| otoolep wrote:
| rqlite author here. It's not a stupid question. :-) In fact, I
| answer it head-on in the rqlite FAQ. To quote:
|
| "rqlite is very simple to deploy, run, and manage. It's
| lightweight. It's a single binary you can drop anywhere on a
| machine, and just start it. This makes it very convenient. It
| takes literally seconds to configure and form a cluster. With
| rqlite you have complete control over your database
| infrastructure, and the data it stores. That said, it's always
| possible it's too simple for your needs."
|
| https://github.com/rqlite/rqlite/blob/master/DOC/FAQ.md#why-...
| uniqueuid wrote:
| I know it's only tangentially related, but is there any similar
| database that allows _offline_ replicas or delayed
| synchronization? I.e. allow for copies to have local offline
| writes and be brought up to synchronize? There is couchdb, but
| that seems to have fallen out of favor. I 'm totally fine with
| having to explicitly handle collisions or prevent collisions
| client-side.
|
| Both dqlite and rqlite seem to use raft which requires an online
| quorum (I assume).
|
| [edit] I know CRDTs would be a potential solution, but I haven't
| seen any readymade, simple DB based on them.
| samatman wrote:
| The SQLite built-in changeset and patchset extensions might be
| what you're looking for:
|
| https://www.sqlite.org/sessionintro.html
| uniqueuid wrote:
| Thanks, that's _extremely_ interesting. Sqlite continues to
| surprise me!
| ramses0 wrote:
| https://pouchdb.com
| uniqueuid wrote:
| Right, but that only runs in browsers? Is there a standalone
| executable or can I embed it in a non-js-language?
| joshbuddy wrote:
| I'm working on an offline/delayed syncing sqlite that deals
| with conflicts. It uses last-write-win for conflict resolution,
| the target audience is small sql databases you want replicated
| among a small group of people.
|
| If it sounds like something that might be useful to you, I'd
| love to talk about your needs.
| oldgregg wrote:
| Looking for solution as well. I want a p2p solution where
| users can "subscribe" to a public SQLite database and
| received signed blocks/wal from the swarm. Edits would go
| into a distributed mempool to be signed by the key owner.
| rom99 wrote:
| Care to elaborate on "couchdb has fallen out of favour"?
| Currently evaluating it for the very case you describe
| uniqueuid wrote:
| Well, I've read about couchdb every few years, and people in
| the last ~5 years were complaining about an awkward query
| syntax, slow embedded JS engine (IIRC), client-side
| complexity of the document data model and effort to maintain.
|
| Similar things could probably be said about mongodb. If your
| data is small enough, it probably doesn't matter.
| couchaway9000 wrote:
| I started using CouchDB around 2010.
|
| Overtime CouchDB has been removing more and more
| functionality and features that made CouchDB great IMHO (e.g
| couchapps), the 2.x (IIRC) made a lot of changes and totally
| broke a large application and made it too challenging to
| update so we stayed on a 1.x version (whatever version was
| last before the big couch merge.) we're moving off of Couch
| entirely in the future.
|
| I'd have a look at Couchbase if you're looking for
| replication features too.
| zrail wrote:
| Litestream might be what you're looking for?
|
| https://litestream.io/
| adamnemecek wrote:
| I know I'm annoying but this would be a really good project to
| write in Rust.
___________________________________________________________________
(page generated 2022-02-01 23:00 UTC)