David Dancy: Apple Purchased FoundationDB

Ab und an stolpere ich über aufhebenswerte Texte anderer. Hier David Dancy über Apples Kauf der FoundationDB. Lesenswert!

Sometimes I stumble across a text from somebody I want to archive. In this case it’s from David Dancy aboutApple purchasing FoundationDB. Good read!

I’ve been tracking FoundationDB for a few years now.

The important thing about it is that it’s a distributed database – i.e. the data resides on lots of servers all at once, with no one server having all of it. They have a layer in front of the database engine that manages all the servers automatically, handling failovers and adding new servers to clusters etc.

This is not particularly new. There are several other databases in the market that do this (I know a bit about MongoDB and Couchbase, for example, but others exist too).

What’s different about FoundationDB is that the database engine as a whole is ACID compliant.

I’m not sure if anyone else makes this claim about their engine.

Couchbase doesn’t, and I don’t think MongoDB does either. They call their engines „eventually consistent“, with parameters you can tune to say whether you require data to be persisted to the disk (it gets written to RAM first) _and_ replicated to other servers and/or clusters before the write operation returns to the client. If you choose not to require this, data can be inconsistent for a brief period while the replicas synchronise their changed data. You as designer can allow this because (say) fast writing may be more important in your particular application than having all data exactly the same at all times.

FoundationDB is a game-changer because it promises horizontally-scalable clustered data that maintains the consistency requirement while still remaining fast. This is really important for people with databases the scale of Apple’s.

Also, internally FoundationDB is implemented as a key-value store (basically a dictionary, so there’s no inherent requirement for a schema). But on top of that they have various API layers, including a nice one that does SQL. So in effect you end up with a distributed database that you can query using SQL with ACID compliance in the storage engine.

That’s really nice!

Funny thing is it used to be open source, but after Apple bought it the GitHub account was emptied out and there’s nothing there now. But there’s probably a few guys wandering around Silicon Valley seeing which helicopters and private jets they’re going to buy for their collection…

David Dancy
Sydney, Australia

Date: Fri, 27 Mar 2015 17:07:21 +1100
To: 4D iNug Technical <4d_tech@lists.4d.com

Und ein Nachtrag. As a addendum

You could follow it up with a link to this Achitecture.pdf

It’s a classic example of the „solve problems by using an extra layer of indirections“ methodology.