Sunday, October 14, 2012

NoSQL: algorithms and data modeling

My Sunday reading session was on a couple of great NoSQL blog posts that are definitely worth reading:

  • Distributed Algorithms in NoSQL Databases: it talks about data consistency, data placement, and system coordination. I learned some interesting new things, like Bully Algorithm for leader election, passivated replicas, how to handle rebalancing between replicas, and multi-attribute sharding, among others.
  • NoSQL Data Modeling Techniques: it lists a bunch of techniques, many of which match my experiences with NoSQL databases. I like this quote, which is essentially how I explained how I designed the data model: "The main design theme is ”What questions do I have?”"
These posts, in particular the first one, require some background, otherwise it may seem a bit hazy. But the author added a great list of references to that should be read to understand it better.

The more I learn about NoSQL - or work with distributed systems - I see how much the complexity is growing when dealing with seemingly simple problems, like data model. It's very hard to get others to understand, but as soon as you start reading these posts and see how many different concerns one has when thinking of the data model, for instance, then you see how skilled a software engineer must be to try to minimize the mistakes and rework. And, that's because the posts above don't even talk about some processing like MapReduce, which is still another aspect to be factored in.

The ones below I haven't read yet, but are on my list and seem promising:
Post a Comment