NoSQL implementation concepts

While familiarizing ourselves with Microsoft new DocumentDB, a solid foundation on NoSQL doesn’t hurt.

A few years ago, I saw a couple of great presentations on Channel9 (from a TechED if I am not mistaken) about Azure Storage. The presenters went into how partitioning works, how requests are routed, how consistency is ensure, how resiliency (in case of node failure) is insured, etc. . Those were quite specific to Azure Blob & Table storage.

Recently, I came across Ricky Ho‘s excellent NoSQL primer: NOSQL Patterns. This article has two main advantages:

  • It is relatively generic (it isn’t tied to a specific implementation of NoSQL product)
  • It is relatively short (compare to a one hour Channel9 presentation)

This conceptual overview gives you an excellent background to better understand the mechanism behind Azure DocumentDB and its design tradeoffs.

Ricky goes into:

  • Topology: how are physical and virtual nodes laid out
  • Partitioning: how is data partitioned & replicated over many virtual nodes
  • Dynamic Membership: how is data mapped to different partitions as nodes join and leave the topology
  • Consistency: how is the database exposing a consistent view to a consumer while data is replicated and moving around on many distributed nodes
  • Replication algorithms

It is especially interesting while working with Azure DocumentDB since that product offers a lot of configurable tradeoffs (e.g. in terms of consistency policy, index building, etc.).

One thought on “NoSQL implementation concepts

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s