wicknicks
Joined 18 years ago
Joined 18 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...
Document everything you see. Take a good camera with you, and if you don't know how to use an SLR, this is the perfect time to learn some basic tricks. Once you pick a camera, you can find some tutorial on the web, which teaches you the basics for that brand/model.
I would use this time out to "take a break" from computer science. But if you can't stay away from it, pick up a book like SICP (http://mitpress.mit.edu/sicp/). This is one of those books which you want to read away from all distractions and think deeply about. If you can, download the accompanying video lectures:
http://ocw.mit.edu/courses/electrical-engineering-and-comput...
X.getA().getB().getC().getD()
we have to X.flatMap(X::getA)
.flatMap(X::getB)
.map(X::getC)
.orElse("UNKNOWN"); //[1]
Not sure why this is going to be better?[1] http://www.oracle.com/technetwork/articles/java/java8-option...
My idea of a grand future is when we can travel across the globe in less than hour, and pay less than $50 doing it.
Also, how does this work in the presence of replicas? Does every replica go through the strategy? What if one or more replicas go down during a transaction?