Live data from Hacker News

Apple open-sources FoundationDB

foundationdb.org

71–80 of 453 posts

Re: Apple open-sources FoundationDB

#71
post #14

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.

CloudKit is using Cassandra/Solr:

- http://www.vldb.org/pvldb/vol11/p540-shraer.pdf

Re: Apple open-sources FoundationDB

#72

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

I think Citus is not really ACID.

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

#74
Question 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.

Re: Apple open-sources FoundationDB

#76
post #55
post #42

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

I think my favorite part of the build process was when we frobnicated libstdc++:

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

#77
post #14

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

I'm confused. How they could use FoundationDB when Apple aquired it a long time ago? Did apple sell the software to other companies?

Re: Apple open-sources FoundationDB

#78

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

Apache Trafodion does as well:

http://trafodion.apache.org

Re: Apple open-sources FoundationDB

#79

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

You should have seen their trade show demos, where they'd demonstrate fault tolerance by literally powering down random computers and unplugging network cables, while visualizing how the system managed fault tolerance.

ah found it: https://www.youtube.com/watch?v=oLGYMdo2q2g

Re: Apple open-sources FoundationDB

#80

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

It's more like what CockroachDB or TiDB use underneath. They all are suited for local clusters, but cannot perform well enough replicating across multiple far away datacenters over public internet, latency trade offs would be unbearable. Spanner is a bit different, with Google's fancy clocks and fancy networks, it can get better latency trade offs that might satisfy more applications.

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.

Post reply on HN