Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
otoolep
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
21 ms
·
241.
▲
Show HN: rqlite, the distributed database built on SQLite – now with ARM support
(philipotoole.com)
5 points
by
otoolep
4y ago
|
0 comments
242.
▲
How to Disagree (2008)
(paulgraham.com)
1 points
by
otoolep
4y ago
|
1 comments
243.
▲
Time is ticking to replace The Pentagon’s 1970s-era Doomsday planes
(politico.com)
9 points
by
otoolep
4y ago
|
0 comments
244.
▲
by
otoolep
4y ago
rqlite author here. I'm actually working to address that. But it does require parsing the SQLite statement before it's sent to the Raft log, and replacing the non-deterministic value with the value evaluated on the leader. It'
245.
▲
rqlite – distributed SQLite: Trading durability for higher INSERT performance
(philipotoole.com)
4 points
by
otoolep
4y ago
|
0 comments
246.
▲
What would a flying-free world look like?
(bbc.com)
4 points
by
otoolep
4y ago
|
4 comments
247.
▲
rqlite – distributed SQLite: Trading durability for higher write performance
(philipotoole.com)
4 points
by
otoolep
4y ago
|
0 comments
248.
▲
by
otoolep
4y ago
Every node in the cluster "knows" the network address of the Leader. It knows because a) it's part of the Raft cluster configuration, and b) every follower "heartbeats" to the Leader periodically. So it's actua
249.
▲
by
otoolep
4y ago
You can wrap a single request (containing multiple SQL statements) in a transaction, and either all the statements will be successful, or none will. That's what rqlite currently supports.
250.
▲
by
otoolep
4y ago
Yes, embedding any kind of store can work. For example, here is an in-memory KV store embedded in Raft: https://github.com/otoolep/hraftd This is kind of a reference use of Hashicorp's Raft.
251.
▲
by
otoolep
4y ago
It's all handled by the Raft libraries (I know this because rqlite uses the same Raft library at this blog post). When integrating with Hashicorp's Raft code, your code must implement Apply()[1]. The Hashicorp code promises not to
252.
▲
by
otoolep
4y ago
I was half-thinking about taking the Postgres wire protocol code[1] that CockroachDB uses, and adding it to rqlite[2]. Then you could talk to rqlite using Postgres tooling (perhaps). The only thing is that rqlite doesn't support distri
253.
▲
Moon soil used to grow plants for first time in breakthrough test
(bbc.com)
4 points
by
otoolep
4y ago
|
1 comments
254.
▲
by
otoolep
4y ago
I agree -- this blog post is light on details. To me the value Cloudflare believes they are offering is mostly ease-of-use, particularly setup. With minimal work you can have a stateful, relational store available to your code. But in terms
255.
▲
by
otoolep
4y ago
rqlite also supports read-only nodes, so in theory you can have more nodes at the edge, just like D1 -- but these nodes won't participate in the distributed consensus process. Those nodes will keep up-to-date with changes, even catchin
256.
▲
by
otoolep
4y ago
You've basically described rqlite [1], which uses Raft to coordinate the changes to the Leader, and then across some number of Followers. The write won't be acked until a quorum has persisted the change, and committed to the under
257.
▲
by
otoolep
4y ago
rqlite author here, happy to answer any questions.
258.
▲
by
otoolep
4y ago
Agreed, they generally solve different problems. It's important to understand that rqlite's goal is not to replicate SQLite per-se. Its primary goal is to be the world's "easiest to operate, highly-available, distribut
259.
▲
by
otoolep
4y ago
rqlite author here. The way I think about it is that both systems add reliability to SQLite, but in addition rqlite also offers high-availability. Another important difference is that Litestream does not require you to change how your appli
260.
▲
by
otoolep
4y ago
rqlite author here. Anything else you can tell me about why you decided against it? Just simpler, as you say, to avoid a distributed system when you can (something I understand).
261.
▲
by
otoolep
4y ago
Congratulations to Ben! This project has been like a rocket ship.
262.
▲
by
otoolep
4y ago
That's correct. rqlite replicates SQLite for fault-tolerance and high-availability, not for performance. It fact performance takes a hit, for the reasons you state. But it's no worse (nor better) than something like, say, etcd o
263.
▲
by
otoolep
4y ago
rqlite author here, happy to answer any questions. One thing I've noticed is a trend towards folks doing bitcoin mining (and related applications) wanting to use rqlite. I think they like that it is very easy to run, and gives them com
264.
▲
by
otoolep
5y ago
Not sure if I follow you, but that's exactly what rqlite does support. https://github.com/rqlite/rqlite/blob/master/DOC/BULK.md
265.
▲
by
otoolep
5y ago
Thanks again for the great write-up.
266.
▲
by
otoolep
5y ago
Quoting from the 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 e
267.
▲
by
otoolep
5y ago
Yeah, it would distract from the key goal of rqlite -- which is a trivial to deploy, simple to operate, reliable distributed store for critical relational data.
268.
▲
by
otoolep
5y ago
I have considered it, but it would introduce a very large amount of complexity -- and make rqlite much more complicated to operate. Adding this type of functionality would push mean rqlite would no longer be a worthwhile system to use. It w
269.
▲
by
otoolep
5y ago
Correct, the answer is no, it doesn't support that form of sharding.
270.
▲
by
otoolep
5y ago
Yes, I have a design in mind, but it's a fair amount of work. It will require a new API too -- and API that allows clients to explicitly create a new connection, create a transaction on it, and close that transaction when finished.
More ›