Consistent Hash Ring Versioning for Non-Blocking Node Changes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Consistent hashing techniques in distributed systems face challenges in maintaining uninterrupted services during node additions or removals, leading to disruptions in client request processing due to the need for updating front-end load balancers and back-end servers with new hash tables.
Innovation Solution
Implementing non-blocking and eventually consistent hashing by creating two co-existing versions of consistent hash rings (CHR) during transitions, allowing parallel data migration and version upgrades without interrupting service, using CR-CR and client-server communication protocols to manage different ring versions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If consistent hashing is used to maintain service stability during node additions or removals, then data consistency is improved, but service interruption occurs due to the need to update front-end load balancers and back-end servers with new hash tables
Solution Approach 1:
The patent segments the consistent hashing system into multiple independent hash tables (first hash table and second hash table) with different versions. This allows the system to perform updates on one hash table while continuing to serve requests through the other hash table, thereby avoiding service interruption during node additions or removals.
Solution Approach 2:
The patent creates a second hash table in advance before removing nodes or adding new nodes to the first hash table. This preliminary action enables the system to switch to the second hash table for new connections while the first hash table is being modified, ensuring continuous service availability without interruption.
2Reliability
If hash tables are updated during node additions or removals, then data consistency is maintained, but client request processing is disrupted
Solution Approach 1:
The patent divides the request processing into two independent paths: one through the first hash table for existing connections and another through the second hash table for new connections. This segmentation allows the system to maintain data consistency during updates while continuing to process client requests without disruption through the active hash table.
Solution Approach 2:
The patent introduces a version number as an intermediary mechanism that tracks which hash table should be used for different connections. The version number acts as a mediator between the updating hash table structure and the request processing logic, allowing clients to be directed to the appropriate hash table without disruption to request processing.
3Device complexity
If a single hash table is used for all nodes, then system simplicity is maintained, but scalability is limited when adding or removing nodes
Solution Approach 1:
The patent segments the single hash table into multiple versioned hash tables (first hash table with first version number, second hash table with second version number). This segmentation provides the flexibility to add or remove nodes from the first hash table while maintaining a separate second hash table for continuous operation, thereby improving scalability without significantly increasing overall system complexity.
Solution Approach 2:
The patent introduces dynamic versioning to the hash table structure, where each hash table can be independently updated, added, or removed based on system needs. This dynamic approach allows the system to adapt to node additions or removals by switching between versions, providing scalability while maintaining manageable complexity through standardized version management.
Data Source
AI summary
Techniques are described for enabling uninterrupted services by computing resources on nodes of a consistency hash ring (CHR) while adding or removing nodes (i.e., making changes) of the CHR. In some embodiments, a duplicate of the existing CHR (i.e., old version) is created to become a new version for performing the changes. Two versions of consistent hash rings (CHRs) co-exist during the transition period of making changes. In some embodiments, computing resources on the nodes of these CHRs perform version upgrades and data migration while continuing to service client requests without interruption.


