First thank you for open source foundationdb.
Deepgreen is our MPP (massive parallel processing) data warehouse. We have a flexible plugin system to access other database or storage systems. Combining the two, FoundationDB can be used to absorbing short read/write transactions and Deepgreen brings full SQL capability for real time analytic tasks.
Deepgreen can also be used as bulk load tool to fdb – on a virtualbox VM running on my laptop, I can insert 10K records (TPCH lineitem, each record is about 20 bytes key, 100 bytes value) per second. Reading from fdb is about 300K records per second. Fdb is configured to use SSD. These numbers are inline with the results published by other people.
We also do in database analytics. We implemented BSP (bulk sync parallel, that is google pregel) on top of fdb. As example, with some reasonable effort of combining/reducing messages, we can run bellman-ford smoothly. The bsp implementation is open source, available from https://github.com/vitesse-ftian/dggo/tree/master/vitessedata/bsp
The problems, we run into during the exercise, are all minor compared to the benefits, but here they are. The go binding is not go get-able. We have to work around the 5-seconds transaction limit, therefore, the transaction model viewed from Deepgreen is kind of strange – but roughly it is read committed. The master branch of go binding does not work with the lastest release 5.1, so we have to hack around it. Also, the documentation for deploying a cluster is not so easy to follow.
Overall, great product, impressive work!