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