[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)