Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

From the article :

>non-sharded, strict serializable, fault tolerant, key-value store that supports point writes, reads and range reads.

k-v store, non-sharded, fault tolerant, reads and range reads. Redis has these.

>strict serializable

Redis's single threaded model does this (maybe, not entirely sure).

Please help me understand why is this comparison orthongonal or does it really replace redis in ways that I don't understand.



The short version: If you have precious data you want to be stored very reliably and consistently, choose FDB over Redis, (or choose a SQL database with a good reputation for reliable storage).

The two words that come to mind are "durable", which is the "D" in ACID, and the extensive testing of FDB's distributed robustness properties in a wide range of testing and fault scenarios.

If you want Redis to store durably, which means the data is reliably stored by the time the database replies to the client and won't magically disappear if there's a crash or power failure just after, you need to turn on its "fsync at every query" mode. This mode is very slow so durable storage is off by default in Redis. So by default Redit can lose the last 1 second of writes on power failure, kernel crash, or virtual machine abrupt termination.

In other words, FDB is desiged for very reliable storage of every transactional write, and has been built and tested with that in mind. Whereas Redis is not; they consider losing recent data in some realistic scenarios to be an acceptable default, and even with "fsync on every query" mode turned on it does not have the same level of testing and focus on durable distributed storage as FDB.

Without the "D", things built on top which fill out the rest of ACID transactions and database indexing aren't as reliable either. For example "C", consistency (with foreign keys, indexes, etc), is impossible to maintain if some of your recent writes may be lost while others are not. I don't know what guarantees Redis offers in this area, but it does not seem to be the focus. Whereas FDB authors make it clear this sort of thing is a core focus of the product which it is architected for and also heavily tested.


iCloud is build on FoundationDB. You couldn't build iCloud on Redis. Most people are not building iCloud though.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: