Live data from Hacker News

Databases = Frameworks for Distributed Systems

laplab.me

11–20 of 21 posts

Re: Databases = Frameworks for Distributed Systems

#11
This post is on to an important dynamic.

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.

Re: Databases = Frameworks for Distributed Systems

#12

I 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 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.

0 - https://www.youtube.com/watch?v=QVvFVwyElLY

Re: Databases = Frameworks for Distributed Systems

#13
We've been designing TigerBeetle [1], a distributed financial accounting database, from the beginning with the ultimate goal that the whole architecture of:

  * 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

#14
At My first programming job, as an intern we went with his approach, using rethinkDB amd python “microservices” that were all separate python processes reading from their own rethinkDB change feed lambda - the system was essentially built as a distributed reactive microservice pipeline, with rethinkDB as the source of truth for every other process - which existed on 100-1000 machines depending!

Re: Databases = Frameworks for Distributed Systems

#15

I 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…

Yup that's the one! Thank you for digging it up.

That work must have been really gratifying especially since it underpins so much now.

Re: Databases = Frameworks for Distributed Systems

#16
A few years back, a colleague and me built a distributed system toolkit in an effort to understand the blocks/pieces of a distributed system and also to make it easier to build one for our needs. This article seems to hit on the same set of notes that we had in mind when we started out building suuchi.

https://github.com/ashwanthkumar/suuchi.

Re: Databases = Frameworks for Distributed Systems

#17

I 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…

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

#18

Earlier 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!

Thanks! Also I’m pretty curious where I can find your project…

Re: Databases = Frameworks for Distributed Systems

#19

Earlier 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…

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.

Re: Databases = Frameworks for Distributed Systems

#20

Earlier 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.

Please do! email in bio and also I'll try to look out for the Show HN!
Post reply on HN