Comments (2)
After some investigation, this doesn't seem to be worth it: Litestream doesn't do live replication (only backups/restores from S3). LiteFS does it, but requires FUSE + Consul (https://github.com/superfly/litefs). Maybe we'll get to revisit it when it's a native Fly platform offering.
We could maybe do a version of it where a read-only instance pulls the SQLite database in at startup, but then propagating changes would require a restart or some kind of a broadcast signal.
Archiving existing work at https://github.com/splitgraph/seafowl/tree/archive/litestream-sqlite-example.
from seafowl.
LiteFS now supports a single static reader: https://news.ycombinator.com/item?id=33206565, so this is possible without Consul. I've pushed some code for this to the archived branch, some things to finish:
- allow running SQLite catalog in a read-only mode (currently every node tries to run migrations)
- investigate a LiteFS issue with mismatched checksums on startup
- redraw the architecture diagram (we still need a volume to store the SQLite database, can't store it on Minio, but then replicas can copy the data from the leader instead of Minio anyway)
- actually try deploying this to Fly with support for the Fly-Replay header
from seafowl.
Related Issues (20)
- Fix SQLite race condition causing new DBs/schemas to not be immediately available after a HTTP 200 HOT 1
- Parsing fails if `-- comment` is included inside arguments of function call (but succeeds with `/* comment */`) HOT 1
- Seafowl 0.4 migration instructions
- Result JSON unsupported types
- Caching queries HOT 2
- CREATE EXTERNAL TABLE with empty Parquet file fails with `Invalid data type for Delta Lake: Null` HOT 7
- feat: iceberg support HOT 1
- `datafusion-remote-tables` crate HOT 4
- Remote tables: filter without sort HOT 2
- rust s3 HOT 1
- Implement a Seafowl CLI
- Implement conversion of parquet to Delta tables
- Add support for object stores with specific paths
- chore: Refactor SeafowlContext
- Figure out what to do with `table_column` catalog table and bulk schema loading in general HOT 1
- Add support for partitioned tables
- Add Arrow Flight frontend
- Implement eager dropping of tables and schemas
- cassandra or scylladb support
- Enable external metastore implementations
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from seafowl.