5 ms·
If you're interested in this, here are some related projects that all take slightly different approaches: - LiteSync directly competes with Marmot and supports
by summarity 3y ago
If you're interested in this, here are some related projects that all take slightly different approaches:
- LiteSync directly competes with Marmot and supports DDL sync, but is closed source commercial (similar to SQLite EE): https://litesync.io https://litesync.io
- dqlite is Canonical's distributed SQLite that depends on c-raft and kernel-level async I/O: https://dqlite.io https://dqlite.io
- cr-sqlite is a Rust-based loadable extension that adds CRDT changeset generation and reconciliation to SQLite: https://github.com/vlcn-io/cr-sqlite https://github.com/vlcn-io/cr-sqlite
Slightly related but not really (no multi writer, no C-level SQLite API or other restrictions):
- comdb2 (Bloombergs multi-homed RDBMS using SQLite as the frontend)
- rqlite: RDBMS with HTTP API and SQLite as the storage engine, used for replication and strong consistency (does not scale writes)
- litestream/LiteFS: disaster recovery replication
- liteserver: active read-only replication (predecessor of LiteSync)
- anovick 3y ago- SQLSync: collaborative offline-first wrapper around SQLite
- KRAKRISMOTT 3y agoDon't forget Turso's libsql which uses a local node+reconciliation https://medium.com/chiselstrike/introducing-embedded-replicas-deploy-turso-anywhere-2085aa0dc242 https://medium.com/chiselstrike/introducing-embedded-replica...
- spiffytech 3y agoAlso Expensify's Bedrock, which powers their widely-circulated "Scaling SQLite to 4M QPS" article: https://bedrockdb.com/ https://bedrockdb.com/ https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a-single-server https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
- otoolep 3y agorqlite[1] creator here, happy to answer any questions. [1] https://www.rqlite.io https://www.rqlite.io
- zellyn 3y agoIs there a system where a single thread writes (ala David Crawshaw's “One Process Programming -- https://crawshaw.io/blog/one-process-programming-notes https://crawshaw.io/blog/one-process-programming-notes), and then changes are replicated out quickly and efficiently? That plus a globally incrementing version number is what I want…
- otoolep 3y agoThat's a (very) simple way to describe what rqlite mostly does (and similar systems, many of which are listed below), though it depends on how "quickly" you want it. If you want speed, it's hard to do it fast -- though accepting a small possibility of data loss will get you much faster performance. rqlite also offers that, via Queued Writes[1]. [1] https://rqlite.io/docs/api/queued-writes/ https://rqlite.io/docs/api/queued-writes/