4 ms·
Each server would have one copy of the SQLite database. Only one of the server would support writes — and those write will be replicated to the other server. Re
by judofyr 4y ago
Each server would have one copy of the SQLite database. Only one of the server would support writes — and those write will be replicated to the other server. Reads in the other server will be transactionally safe, but might be slightly out of date.
- swaraj 4y agoThis is my main q: are the writes replicated in real-time? Do the apps that just need read access have to repeatedly call 'restore'?
- tptacek 4y agohttps://litestream.io/getting-started/#continuous-replication https://litestream.io/getting-started/#continuous-replicatio...
- losvedir 4y agoIt says "continuous" but I don't really see how it is. Or, at least, I get that the backin-up is continuous, since litestream is watching the WAL. But in the example there, isn't `restore` called manually to pick up the change? Is the idea you just kind of "poll" restore? That seems like a lot of extra work, if I'm reading that example correctly. It pulls down the whole database every time? Even a "small" SQLite DB (for the use cases I'm thinking of) can easily be a hundred megabytes. I don't think I'd want to poll that every few seconds.
- trh0awayman 4y agoYou have to call a "restore" function, according to their docs. I'm not sure I understand the use case, but perhaps it's just for structured user-only data.
- mikkei 4y agoThis is what I understand as well. On top of that, you cannot call restore on the same sqlite file, so you have to create a new db each restore and make your reader app aware of the new db file. Edit: As the blog is saying, it's mainly for single-node application so you should treat the project as a way to constantly backup your sqlite db and being able to recover from disaster.
- zepolen 4y agoI don't think you understand what transactionally safe means. SQLite used in this manner is not a database, it's a cache. Thinking otherwise will give you a bad time when the value you're writing is based on the stale value you read.