Extent Hashing for Distributed Storage Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed storage systems, a single storage system often becomes overburdened with data access requests, leading to degraded performance and speed, as it fails to effectively leverage and distribute processing and storage resources across the cluster.
Innovation Solution
The implementation of an extent hashing technique that distributes data and metadata evenly among nodes in a cluster by using a hash function to generate a hash value, which is then truncated and divided into buckets, assigning these buckets to extent store instances based on capacity and resource utilization, ensuring uniform distribution and load balancing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If data and metadata are concentrated on a single storage system, then simplicity of architecture is maintained, but processing load and storage consumption become excessive leading to degraded performance
Solution Approach 1:
The patent segments data into extents and metadata into extent metadata, then distributes them across multiple storage systems using extent hashing. This segmentation allows the cluster to share processing and storage loads, improving data access speed while maintaining architectural simplicity through standardized distribution mechanisms.
Solution Approach 2:
The patent introduces a new dimension of distribution by using extent hashing to map extents to specific storage systems based on hash values. This creates a systematic multi-dimensional distribution approach across the cluster, transforming the single-point storage model into a distributed architecture that improves performance without excessive complexity.
2Productivity
If data is distributed across multiple storage systems, then processing load is reduced and performance is improved, but system complexity increases
Solution Approach 1:
The extent hashing mechanism operates autonomously to distribute extents and metadata across storage systems without requiring complex centralized management. Each storage system independently computes hash values and places data accordingly, enabling self-service distribution that improves performance while minimizing management complexity.
Solution Approach 2:
The patent changes the distribution parameter from arbitrary or sequential placement to hash-based placement. By using extent hashing as the distribution parameter, the system achieves uniform load distribution across storage systems, improving data access speed while simplifying management through a deterministic and scalable approach.
3Productivity
If all storage systems service all data requests, then resource utilization is maximized, but load balancing becomes difficult to manage
Solution Approach 1:
The extent hash value acts as an intermediary that deterministically maps extents to specific storage systems. This intermediary mechanism enables automatic load balancing across the cluster, maximizing resource utilization while eliminating the need for complex manual load distribution management.
Solution Approach 2:
The patent replaces mechanical load balancing mechanisms (such as centralized schedulers or manual distribution) with a computational hash-based system. This substitution automates load distribution through deterministic hash calculations, improving resource utilization while simplifying operations through an algorithmic rather than mechanical approach.
Data Source
AI summary
In one embodiment, a technique is provided for distributing data and associated metadata within a distributed storage architecture. A set of hash tables that embody mappings of cluster-wide identifiers associated with storage locations are stored for write data of write requests organized into extents. A hash value is generated from a hash function applied to each extent. The hash value is overloaded and used for multiple purposes within the distributed storage architecture, including (i) a remainder computation on the hash value to select a bucket of a plurality of buckets representative of the extents, (ii) a hash table selector of the hash value to select a hash table from the set of hash tables, and (iii) a hash table index computed from the hash value to select an entry from a plurality of entries of the selected hash table having a cluster-wide identifier identifying a storage location for the extent.


