NoSQL implementation conceptsSolution ·
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.).