Yeah, I am not sure how multiple queries will co-exist in this strategy. Especially, if you have two queries which are not commutative (say, one which increments a column and the other one which replaces the column with its square root).
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?
I'm going to provide basic answers here. You can look at the homepage for more detailed answers (the video linked there is very helpful too) [1].
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.
It depends on personal taste. But if I were going to a country I never visited before, there would be very little time to do anything else other than sightseeing, mingling with the locals, learning about their culture, their history, the food, and if you are anywhere near one, visit the national parks and take the safari.
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:
The problem is not to to just get from point A to B, but to have a good experience doing it. Air travel is getting worse every year. Starting from the airport checks to the long immigration lines (when traveling internationally) and super expensive fares for those "cuddly" seats, it can make holidays more exhausting than work. And if you live an hour from the airport, well good luck!
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.
In the United States probably. The author doesn't sound too old, and says that he/she got access to the internet much later. Which means the author is probably from the Middle east or China or South Asia. The work culture there is not as open as in the west. Daily job means monotonous routine work. What excited him about the prime numbers problem was the novel aspect of it, and the fact that he was in control. Later, in his/her day job, that was no longer the case -- someone else was making the decisions. Until these nuances trickle into daily jobs, most people will sooner than later burnout.
Took me a while to figure it out too. I think the title would have been best written as "Hadoop and Go".
Its maybe because I'm new to the language, but I have to add 'lang' to all my Google searches for Go documentation/tips, otherwise the keywords are almost always misinterpreted.
Rich Hickey is a genius. I love how he connected music to software engineering [1]. He should write a book on some of these topics. He has a lot more than 45 mins talks to offer to the world.
You should give it a try. RethinkDB, imo, embraces a lot of good ideas from the SQL world. Given a few years, I feel they will have a great DB with good ideas from both the SQL and NoSQL worlds.
A precursor to the compilers class is the Formal Automata one. This is very useful in understanding fundamental computation models (what is computation, why, how can we do it etc..). I was recently reading [1] to refresh some concepts and found it to be more engaging than some of the older books on the topic.
Smart idea. Good job! Could you extend bd to jump to bookmarked directories. I often jump between /data... and ~/dir/containing/code/ -- would be useful to have one command help with both scenarios.
Very interesting technology. I used your website, uploaded three pictures -- it failed on the first, and worked somewhat on the others. I'm guessing it needs a more experienced user base? Assuming that model generation requires human supervision, do you think the neural network algorithm scales to the numbers mentioned in the article (trained on 12 million photos, and operating in 7 different states)?
BTW, all the best with your website. Hope you take more avatars "where go where no man has gone before!"
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?