Live data from Hacker News

FoundationDB 6.0 released, featuring multi-region support

foundationdb.org

31–40 of 72 posts

Re: FoundationDB 6.0 released, featuring multi-region support

#31
post #28
post #9

So, FoundationDB is a pretty low level distributed key-value store with transactions. Most applications will need something higher level, like a SQL or document db frontend which could be built on top. I'm curios what people have started using FoundationDB for. Any interesting stories to share?

We have moved to FDB for our messaging platform. We had several options: a) Rewrite SQL code. In our case we are using Node.JS and all SQL libraries are very very slow. Even replacing one with another is enormous work. b) Rewrite to a new language. It was also an option since querying Postgres can take 1ms, but parsing response can easily take 100ms+. That trashed our event loop and causes awful latency. c) Rewrite t…

100ms+!

Ouch. Is that just large amounts of data? Are you guys using pg.native?

Re: FoundationDB 6.0 released, featuring multi-region support

#32
post #28

Earlier quoted context omitted.

We have moved to FDB for our messaging platform. We had several options: a) Rewrite SQL code. In our case we are using Node.JS and all SQL libraries are very very slow. Even replacing one with another is enormous work. b) Rewrite to a new language. It was also an option since querying Postgres can take 1ms, but parsing response can easily take 100ms+. That trashed our event loop and causes awful latency. c) Rewrite t…

100ms+! Ouch. Is that just large amounts of data? Are you guys using pg.native?

No, this is just say a list of messages, not that much of data. We tried to move to pg-native, but it didn't help. Problem was in Sequelize. But in my internal tests even Sequelize was the fastest library on the market.

Re: FoundationDB 6.0 released, featuring multi-region support

#33
Shameless plug here, but if anyone wants to benchmark in-memory vs. NVMe NAND SSD vs. NVMe Intel Optane DC SSD performance, we're looking for someone with FoundationDB expertise to give it a shot and share their learnings with the community. Make a request for a server by posting a new issue at our Github page [1].

Basically, I'm curious to know how FDB's memory engine performs compared to the SSD engine with a standard NAND SSD and an Intel Optane DC SSD. Something along the lines of the throughput per core and latency results on the FDB performance page [2].

[1]: https://github.com/AccelerateWithOptane/lab/issues [2]: https://apple.github.io/foundationdb/performance.html

Disclosure: I'm working at Intel and help manage our open source lab with our friends at Packet.

Re: FoundationDB 6.0 released, featuring multi-region support

#34
post #33

Shameless plug here, but if anyone wants to benchmark in-memory vs. NVMe NAND SSD vs. NVMe Intel Optane DC SSD performance, we're looking for someone with FoundationDB expertise to give it a shot and share their learnings with the community. Make a request for a server by posting a new issue at our Github page [1]. Basically, I'm curious to know how FDB's memory engine performs compared to the SSD engine with a stand…

Only tangentially related, but are there any public Postgres benchmarks for systems running high-CPU, high-memory, p4800x optane drives?

Re: FoundationDB 6.0 released, featuring multi-region support

#35
post #24
post #4

To anyone who is on the fence about putting FoundationDB into production (or at least evaluating it for their use cases), what is the number one thing you think is missing or you're worried about? i.e. - a SQL interface, - pre-packaged data structure libraries, - monitoring, - limitations of FoundationDB itself, - etc. I'm working on a talk for the upcoming FoundationDB Summit and I'd love to address some real-world…

My blocker is that the documentation is confusing and not very straight forward. The tutorials are not very verbose and the code (at least for python) is not written in a way that is easy for someone to understand. I'd be very interested in usage for time-series, but it looks like to get a working example up I'd need to fully parse the documentation and tutorials in order to do it as there is no "Let's build a Timese…

Have you given https://apple.github.io/foundationdb/time-series.html a read? Since FoundationDB is lexicographically sorted it's pretty straight forward to keep things sorted for reading data in chronological order.

For example, if you want to read "last 5 minutes" of data, you can keep your timestamp at the end of the key in reverse order (Long.MaxValue - timestamp).

Re: FoundationDB 6.0 released, featuring multi-region support

#36
post #4

To anyone who is on the fence about putting FoundationDB into production (or at least evaluating it for their use cases), what is the number one thing you think is missing or you're worried about? i.e. - a SQL interface, - pre-packaged data structure libraries, - monitoring, - limitations of FoundationDB itself, - etc. I'm working on a talk for the upcoming FoundationDB Summit and I'd love to address some real-world…

- transaction size and duration limitations. I can almost understand the limitation on large write transactions, but the same size limitation applies to read transactions. If you’re doing a large range read, you may not know whether your range will reach the 10MB limit, and thus raise an exception.

- the storage backends seem less impressive than the marketing leads you to believe. The default memory backend is obviously too limited to use in production, and the “ssd” backend turns out just to be built on top of the Btree code from SQLite. Besides that, the documentation warns against using the ssd backend on macOS. Isn’t that a bit strange, considering who owns foundationdb??

- while testing, I found that it was impossible to shrink a cluster. If you add a second storage node just to test that the distributed stuff works correctly, you can’t reduce it back to a single node without destroying the entire database and starting over. If it’s possible to run everything on one node, it should be possible to shrink a cluster back to a single node.

- the storage backends have a crazy amount of write amplification (something like 3x, according to the docs). The foundationdb folks should focus on improving the underlying storage, for instance by building on lmdb or RocksDB or something. For my toy app, I abstracted my data access to use either lmdb (for local testing) or foundationdb (for production), but I ultimately ended up just using lmdb because I didn’t want to deal with fdb’s limitations and operational unknowns.

- another weird fdb limitation: the best single threaded latency you’ll get is supposedly around 1ms for small reads. The docs suggest you can achieve much better performance by scaling the cluster and number of clients. That may be true, but some applications may want high single-threaded performance. (Something like lmdb can achieve tens of thousands of reads per second)

Re: FoundationDB 6.0 released, featuring multi-region support

#37
post #4

To anyone who is on the fence about putting FoundationDB into production (or at least evaluating it for their use cases), what is the number one thing you think is missing or you're worried about? i.e. - a SQL interface, - pre-packaged data structure libraries, - monitoring, - limitations of FoundationDB itself, - etc. I'm working on a talk for the upcoming FoundationDB Summit and I'd love to address some real-world…

- transaction size and duration limitations. I can almost understand the limitation on large write transactions, but the same size limitation applies to read transactions. If you’re doing a large range read, you may not know whether your range will reach the 10MB limit, and thus raise an exception. - the storage backends seem less impressive than the marketing leads you to believe. The default memory backend is obvio…

Regarding your first comment, the reason I’m listed as a contributor for this release is I made a change to the documentation about large range reads. Basically, value sizes are not included in the 10mb limit for reads.

Re: FoundationDB 6.0 released, featuring multi-region support

#38
post #33

Shameless plug here, but if anyone wants to benchmark in-memory vs. NVMe NAND SSD vs. NVMe Intel Optane DC SSD performance, we're looking for someone with FoundationDB expertise to give it a shot and share their learnings with the community. Make a request for a server by posting a new issue at our Github page [1]. Basically, I'm curious to know how FDB's memory engine performs compared to the SSD engine with a stand…

Only tangentially related, but are there any public Postgres benchmarks for systems running high-CPU, high-memory, p4800x optane drives?

Would something like the TSBS [1] help with this? It's TimescaleDB but they're built on Postgres. They have built-in high-CPU queries, but I haven't seen high-memory before. Can you point me in the right direction? Otherwise, we've had some Postgres people use the lab and are waiting on their decision whether to share publicly.

[1]: https://github.com/timescale/tsbs

Re: FoundationDB 6.0 released, featuring multi-region support

#39
post #4

To anyone who is on the fence about putting FoundationDB into production (or at least evaluating it for their use cases), what is the number one thing you think is missing or you're worried about? i.e. - a SQL interface, - pre-packaged data structure libraries, - monitoring, - limitations of FoundationDB itself, - etc. I'm working on a talk for the upcoming FoundationDB Summit and I'd love to address some real-world…

- transaction size and duration limitations. I can almost understand the limitation on large write transactions, but the same size limitation applies to read transactions. If you’re doing a large range read, you may not know whether your range will reach the 10MB limit, and thus raise an exception. - the storage backends seem less impressive than the marketing leads you to believe. The default memory backend is obvio…

I havent tested that it does work as described but the docs say that the cluster stops working entirely unless the cluster size corresponds to the configured replication. Seen here: https://apple.github.io/foundationdb/configuration.html#conf...

Look under "double" mode or "triple" mode. Is this why it maybe didn't work for you?

Re: FoundationDB 6.0 released, featuring multi-region support

#40

Earlier quoted context omitted.

- transaction size and duration limitations. I can almost understand the limitation on large write transactions, but the same size limitation applies to read transactions. If you’re doing a large range read, you may not know whether your range will reach the 10MB limit, and thus raise an exception. - the storage backends seem less impressive than the marketing leads you to believe. The default memory backend is obvio…

Regarding your first comment, the reason I’m listed as a contributor for this release is I made a change to the documentation about large range reads. Basically, value sizes are not included in the 10mb limit for reads.

Ah yes, I just noticed that in the docs. That’s a good thing to note, though you could still run into the problem with very large ranges (maybe reading 1 million keys is a rare use case?).
Post reply on HN