Hybrid Hash-Ordered Key-Value Store for Fast Sequential Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hash-table based key-value stores cannot efficiently handle GETNEXT, GETPREV, and GETRANGE requests due to their inability to determine the order of keys, leading to impractical full searching and decreased response speed.

Innovation Solution

A data processing device that utilizes a request interpreter, a first accessor to identify key positions in an order key string, a second accessor to acquire hash addresses, and a third accessor to read data, allowing for efficient handling of these requests by using both a hash table and an order key string depending on the request type.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a hash-table based KVS is used for fast key lookup, then response speed for GET requests is improved, but the ability to handle GETNEXT/GETPREV/GETRANGE requests efficiently deteriorates

Engineering Contradiction:
Improveresponse speedVSAvoidability to handle ordered key requests
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The system segments the key management functionality into two separate components: a hash table for O(1) direct key lookup and an ordered key string for maintaining key sequence. This segmentation allows each component to specialize in its strength while the system as a whole gains both fast lookup and ordered access capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges two different data structures (hash table and ordered key string) into a unified key-value store system. The hash table handles exact key matching while the ordered key string handles sequential key access, creating a hybrid system that leverages the advantages of both approaches.

Inventive Principle:
Principle #5Merging (Combining)

2Loss of information

If full searching is performed to obtain key order in a hash-table based KVS, then key order information can be obtained, but productivity deteriorates due to impractical searching time

Engineering Contradiction:
Improvekey order informationVSAvoidsearching efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The system performs preliminary action by pre-sorting and storing all keys in an ordered key string data structure. This ordered structure is maintained as keys are added to the hash table, so when ordered key access is needed, the information is already prepared and readily available without requiring full searching.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The ordered key string acts as an intermediary data structure that bridges the gap between the hash table's fast lookup capability and the need for key order information. Instead of searching the hash table for order information, the system queries the intermediary ordered key string which is specifically designed for sequential access.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10846338B2Data processing device, data processing method, and non-transitory computer readable medium
Publication Date: 2020.11.24 KIOXIA CORP
  • US10846338B2 patent drawing
  • US10846338B2 patent drawing
  • US10846338B2 patent drawing

AI summary

According to one embodiment, a data processing device is provided. The request interpreter receives a read request with a specified key and interprets the read request. The first accessor identifies a key that has a positional relation with the specified key in a manner specified by the read request, in an order key string in which a plurality of keys are stored in order under a predetermined rule. The second accessor is implemented by the computer to acquire a second address corresponding to a first address based on a hash value of the key identified by the first accessor from management data associating the first address and the second address each other. The third accessor is implemented by the computer to read out data associated with the second address acquired by the second accessor from among pieces of data respectively associated with a plurality of the second addresses.