(no title)
wicknicks | 11 years ago
Main use case: Multi-threaded low latency data access. It is optimized for use cases where the insert/update rate is very high. In short, it has an LSM tree to quickly add new/updated records. At frequent intervals this LSM tree is merged into the on-disk pages. It is very well engineered, making the lookups very fast as well.
Queries can touch data on disk as well.
Rocks is an embedded database. Natively written in C++, but has bindings for other languages. [2]
No, nodes do not talk to each other.
Something I am personally excited about: RocksDB has a merge operator, which is (probably) still in development. It allows you to update the value of an entry by providing a merge function. It is extremely useful to merge data if you binary format supports it (for example, protobufs do this natively, and it will be very smart to store your protobuf binary natively in Rocks, and do regular merges to it).
No, an in-memory dictionary will provide far fewer guarantees and features.
[2] https://github.com/facebook/rocksdb/wiki/Third-party-languag...
No comments yet.