Do we know where/how Apple uses FoundationDB in production ?
Maybe CloudKit? I was looking at the documentation for it recently and it's a key-value store.
Apple open-sources FoundationDB
71–80 of 453 posts
Re: Apple open-sources FoundationDB
#72I hate to be that person, but when I hear "ACID transactions in a distributed database", I hear Citus/Spanner/CockroachDB. I'm positive that Citus & Spanner are quite different from FoundationDB, but I have no idea how. Googling didn't help much. Can someone provide an overview of the differences?
Spanner (and to an extent its less mature OSS descendants Cockroach and TiKV) has more comparable goals, but is fairly different architecturally. For example, FoundationDB only requires N+1 replicas instead of 2N+1 to achieve N failure tolerance (even lots of databases with much weaker guarantees are in the latter category!), doesn't trust clocks at all, doesn't lose performance when transactions cross replica sets, and uses optimistic instead of pessimistic concurrency.
Also FoundationDB (and TiKV) make a distributed, transactional key/value store available as an API, while Spanner and Cockroach expose only a relational database layer. FoundationDB is designed philosophically with the idea that you want to have a single storage layer to manage operationally but should be able to mix and match data models and query engines above that layer.
On the other hand, FoundationDB doesn't currently have any full fledged high level database layer available. Someone will probably dig up our SQL layer (which was AGPL, I think) but I wouldn't really recommend using it in production because there is no active development team. Someone will probably try porting the SQL layers from TiDB and Cockroach.
Maybe Apple will open source more stuff in the future, but let's not get too greedy!
Re: Apple open-sources FoundationDB
#73It seems the announcement concerns only the KV one. Someone has information for the 2 other ones?
Thank you.
Re: Apple open-sources FoundationDB
#74Re: Apple open-sources FoundationDB
#75Re: Apple open-sources FoundationDB
#76Earlier quoted context omitted.
Fair enough, I stand corrected. Superficially it seems like a more pleasant experience than dealing with gn/ninja as an end user.
As an end user it's absolutely better. I'm just torn between pride and embarrassment thinking about how it was implemented.
https://github.com/apple/foundationdb/blob/master/Makefile#L...
And then there were the hijinks we went through to build a cross-compiler with modern gcc and ancient libc (plus the steps to make sure no dependency on later glibc symbols snuck in):
https://github.com/apple/foundationdb/blob/master/build/link...
Ahh... now that was a build system.
Re: Apple open-sources FoundationDB
#77Do we know where/how Apple uses FoundationDB in production ?
Wavefront's co-founder just tweeted this: https://twitter.com/panghy/status/987022825457266689 Finally it's out! @WavefrontHQ managaes petabyte scale clusters with #foundationdb today!
Re: Apple open-sources FoundationDB
#78I hadn't heard of FoundationDB before, so I did some digging into the features: https://apple.github.io/foundationdb/features.html . It seems to claim ACID transactions with serializable isolation, but also says later on that it uses MVCC, slower clients won't slow down operations, and that it allows true interactive queries. I didn't think an MVCC implementation could provide that level of isolation, and I'm not eve…
Re: Apple open-sources FoundationDB
#79Question for the FoundationDB gurus that are hanging out on this thread: How well does it deal with spotty connectivity? I'm asking because I work on mobile robots, and WiFi and/or LTE connections are always coming and going in unpredictable ways as the vehicle moves about it's environment. Reconnecting every few minutes is normal.
ah found it: https://www.youtube.com/watch?v=oLGYMdo2q2g
Re: Apple open-sources FoundationDB
#80I hate to be that person, but when I hear "ACID transactions in a distributed database", I hear Citus/Spanner/CockroachDB. I'm positive that Citus & Spanner are quite different from FoundationDB, but I have no idea how. Googling didn't help much. Can someone provide an overview of the differences?
Citus I can't remember, but if Citus does it properly wrt consistency, it should be in the same category as CockroachDB and TiDB, there is no magic.