As some of the HBase users are still running HBase 1.x versions in their production environment, and branch-1 is trending toward EOL, now is really the right time to evaluate as well as understand the features and core design changes provided by HBase 2.x versions.
As the majority of us are already aware, one of the key features with significant architectural changes provided by HBase 2 is AssignmentManagerV2 (AMv2). However, we don't seem to have one place explaining 1) *the evolution of AM* and 2) how it manages region assignments with better scalability, reliability and fault-tolerance. Keeping this in mind, Andrew and I have published a series of two-part blog posts explaining this evolution. Part 1 provides a) some basic introduction to HBase concepts, and b) AM and it's shortcomings from previous versions that AMv2 is trying to resolve. Part 2 provides detailed info about Pv2 and how AMv2 leverages it, and also state diagrams explaining some of the complex region assignment workflows. The intention of state diagrams is for dev/users to be able to a) understand region assignment workflows in-depth, b) easier code walk-through and c) debug and root cause issues with better knowledge. Part 1: https://engineering.salesforce.com/evolution-of-region-assignment-in-the-apache-hbase-architecture-part-1-c43b1becc522 Part 2: https://engineering.salesforce.com/evolution-of-region-assignment-in-the-apache-hbase-architecture-part-2-9568fb3790b