We've scaled databases then broken them up and our applications are distributed databases now. The tools mentioned seem a bit random but... There does seem to be space for database tooling that melds into our applications but everyone wants to bring you into their bubble instead.
Databases = Frameworks for Distributed Systems
11–20 of 21 posts
Re: Databases = Frameworks for Distributed Systems
#12I was watching a video by one of Amazon’s distinguished engineers a while ago and for the life of me I can’t find it now but the thing that stuck with me from it is, “There are only three modes for a distributed system - it implements paxos/raft itself, it relies on a data store that implements paxos/raft or it’s wrong.” Obviously a bit of an over simplification since there have been some advancements in that area bu…
That sounds like something Al Vermeulen would say. Though my recollection of the quote is more along the lines of:
"There are three types of consistent distributed systems: paxos, broken protocols, and single points of failures."
I'm guessing the talk it came from is Under The Covers: Core Distributed Systems Primitives that Power Our Platform[0]. That presentation is full of great insight into how AWS thinks about distributed systems. The other presenter, Swami, is the VP of AWS Databases now but started off getting Amazon's initial Paxos implementation going. I was lucky enough to work on those core building blocks and it was an incredible experience.
Re: Databases = Frameworks for Distributed Systems
#13 * global consensus layer (Viewstamped Replication) [2], and the
* local storage engine (a high-performance storage fault-tolerant LSM-tree over io_uring) [3],
* which can all be deterministically simulated and fuzzed,
can eventually be used as a distributed library that gives you not only consensus but storage, all in one, kind of like “a DistSys Iron Man suit”—you put in your own state machine and business logic [4] inside it, and get all the replication and fault-tolerance around that, out of the box.TigerBeetle is based on some of the latest research around storage faults, how to recover safely and maximize high availability, and we've been heavily inspired by the deterministic simulation testing of FoundationDB [5].
[1] https://github.com/coilhq/tigerbeetle
[2] https://github.com/coilhq/tigerbeetle/blob/main/src/vsr/repl...
[3] https://www.hytradboi.com/2022/tigerbeetles-lsm-forest
[4] https://github.com/coilhq/tigerbeetle/blob/main/src/state_ma...
[5] https://www.youtube.com/watch?v=OJb8A6h9jQQ — “How I Learned to Stop Worrying and Trust the Database”
Re: Databases = Frameworks for Distributed Systems
#14Re: Databases = Frameworks for Distributed Systems
#15I was watching a video by one of Amazon’s distinguished engineers a while ago and for the life of me I can’t find it now but the thing that stuck with me from it is, “There are only three modes for a distributed system - it implements paxos/raft itself, it relies on a data store that implements paxos/raft or it’s wrong.” Obviously a bit of an over simplification since there have been some advancements in that area bu…
> “There are only three modes for a distributed system - it implements paxos/raft itself, it relies on a data store that implements paxos/raft or it’s wrong.” That sounds like something Al Vermeulen would say. Though my recollection of the quote is more along the lines of: "There are three types of consistent distributed systems: paxos, broken protocols, and single points of failures." I'm guessing the talk it came f…
That work must have been really gratifying especially since it underpins so much now.
Re: Databases = Frameworks for Distributed Systems
#16Re: Databases = Frameworks for Distributed Systems
#17I was watching a video by one of Amazon’s distinguished engineers a while ago and for the life of me I can’t find it now but the thing that stuck with me from it is, “There are only three modes for a distributed system - it implements paxos/raft itself, it relies on a data store that implements paxos/raft or it’s wrong.” Obviously a bit of an over simplification since there have been some advancements in that area bu…
Well in some situations you can also get away with CRDTs or Gossip (SWIM), but yeah in the general sense Paxos (Raft is a Paxos-family algo). There are lots of paxos family algos to choose from[0]. > I’m also currently building a distributed search engine using etcd for the service registry, broker peer announcements, and worker queue and it’s been a good experience so far. As a random stranger on the internet, pleas…
Re: Databases = Frameworks for Distributed Systems
#18Earlier quoted context omitted.
Well in some situations you can also get away with CRDTs or Gossip (SWIM), but yeah in the general sense Paxos (Raft is a Paxos-family algo). There are lots of paxos family algos to choose from[0]. > I’m also currently building a distributed search engine using etcd for the service registry, broker peer announcements, and worker queue and it’s been a good experience so far. As a random stranger on the internet, pleas…
I think that's a great idea, I already have the beginnings of a plugin system since local non distributed is a mode you can run in and I had to abstract etcd away to do that. Will add it to the list!
Re: Databases = Frameworks for Distributed Systems
#19Earlier quoted context omitted.
I think that's a great idea, I already have the beginnings of a plugin system since local non distributed is a mode you can run in and I had to abstract etcd away to do that. Will add it to the list!
Thanks! Also I’m pretty curious where I can find your project…
Re: Databases = Frameworks for Distributed Systems
#20Earlier quoted context omitted.
Thanks! Also I’m pretty curious where I can find your project…
Hey at the moment it’s not public but I’m getting to the point where it will be. Happy to ping you when it is, also planning to do a show HN post here as well with it.