Key-Value Store Hash Segmentation for Data Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed data storage systems using key-value databases face challenges in evenly distributing data across multiple nodes due to uneven hash value distribution, leading to inefficient data retrieval and load balancing.

Innovation Solution

Implementing a key-value processing system that categorizes data into sub-groups and subsets using a primary and secondary field, where the secondary field is hashed to index user data, allowing for selective retrieval of entire sub-groups or subsets, and adjusting the hash range to balance data distribution and query efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is distributed across multiple key-value servers using hash values, then data storage capacity and accessibility are improved, but uneven hash value distribution causes inefficient data retrieval and load balancing

Engineering Contradiction:
Improvedata distribution across nodesVSAvoiddata retrieval efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the hash value into multiple components (prefix, suffix, and middle portions) to create a hierarchical data organization structure. This segmentation allows for more granular control over data distribution and retrieval, enabling efficient querying at multiple levels of the data hierarchy while maintaining balanced load across nodes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an additional dimension to the traditional key-value storage model by organizing data into hierarchical groups and subsets based on segmented hash components. This multi-dimensional organization allows for more efficient data location and retrieval by querying along different dimensional axes (prefix-based groups vs. suffix-based subsets), resolving the inefficiency caused by flat hash distribution.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Ease of operation

If a fixed hash function is used for data indexing, then data retrieval is simplified, but data distribution becomes uneven across servers

Engineering Contradiction:
Improvedata retrieval simplicityVSAvoiddata distribution uniformity
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent implements dynamic hash range selection where the system can adjust the portion of the hash value used for indexing based on distribution needs and query patterns. This dynamic approach allows the system to optimize between retrieval simplicity and distribution uniformity by selecting appropriate hash ranges (full hash, prefix-only, suffix-only) depending on the specific operational context.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of hash value utilization by using different portions of the hash (prefix, suffix, or full) for different indexing purposes. This parameter change enables the system to achieve both simple retrieval (using consistent prefixes) and uniform distribution (using full hash ranges) by selectively applying different hash portions in different contexts.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If the entire hash value is used for indexing, then data distribution is maximized, but query flexibility for retrieving subsets is reduced

Engineering Contradiction:
Improvedata distributionVSAvoidquery flexibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent segments the hash value into distinct portions (prefix, middle, suffix) that can be independently used for different query types. This segmentation enables the system to maintain full data distribution benefits while providing flexible query capabilities by allowing users to query using different segments depending on their needs (e.g., prefix for group-level queries, suffix for subset-level queries).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates multiple query dimensions by organizing data hierarchically based on hash segments. This allows queries to be executed along different dimensional axes - prefix-based queries for retrieving groups of related data, suffix-based queries for retrieving specific subsets, and full-hash queries for precise lookups - thereby enhancing query flexibility while maintaining distribution.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

4Adaptability or versatility

If data is organized into hierarchical sub-groups and subsets, then retrieval flexibility is improved, but system complexity increases

Engineering Contradiction:
Improveretrieval flexibilityVSAvoidsystem structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent uses segmentation of the hash value as the foundation for hierarchical organization, which provides a natural and systematic way to create sub-groups and subsets without requiring complex external indexing structures. This hash-based segmentation inherently provides the hierarchical structure needed for flexible retrieval while keeping the organization mechanism relatively simple and consistent with existing key-value storage paradigms.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10452610B2Fast lookup of related data partitioned across a distributed key-value store
Publication Date: 2019.10.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10452610B2 patent drawing
  • US10452610B2 patent drawing
  • US10452610B2 patent drawing

AI summary

A storage cluster includes a plurality of key-value storage nodes categorized into sub-groups of data associated with a first value identifying the sub-group and second values identifying respective subsets of data. A key-value processing system receives at least one of a first request to retrieve a selected one of the sub-groups of data, the first request including a plurality of keys, each of the plurality of keys including the first value and a respective one of the second values, and a second request to retrieve a selected one of the subsets of data. The second request includes a key having the first value and a selected one of the second values. The selected one of the second values corresponds to a hash value. The storage cluster selectively provides at least one of the selected one of the sub-groups of data and the selected one of the subsets of data.