Key-Value Store Partial Data Access via Block Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing key-value stores face inefficiencies due to the need to access and modify entire values when only a portion is requested, leading to increased traffic, memory usage, and wear on storage media, as they lack partial data access capabilities.

Innovation Solution

The method involves generating smaller block objects with new keys and values based on the original data object's key and metadata, allowing for partial data access by storing these block objects in the key-value store instead of the entire data object, thereby enabling efficient access to specific portions of data without accessing the full value.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the full value is accessed when only a portion is requested, then the key-value store can maintain simple object storage architecture, but data traffic, memory usage, and processing overhead increase significantly

Engineering Contradiction:
Improveobject storage architectureVSAvoiddata traffic and processing overhead
Core Design Contradiction:
Device complexityVSLoss of energy

Solution Approach 1:

The patent divides the value into multiple blocks of fixed size (e.g., 64KB each), where each block can be independently stored and accessed. This segmentation allows the system to retrieve only the necessary blocks rather than the entire value, reducing data traffic and processing overhead while maintaining a relatively simple storage architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to the key-value store by adding block-level addressing capabilities. Instead of only accessing values at the object level, the system now operates at a finer granularity (block level), enabling partial reads and writes without requiring the full value to be loaded into memory.

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

2Device complexity

If the full value is read and modified when only a portion needs updating, then the key-value store structure remains simple, but storage wear and write amplification increase

Engineering Contradiction:
Improvekey-value store structureVSAvoidstorage media wear
Core Design Contradiction:
Device complexityVSDuration of action of stationary object

Solution Approach 1:

By segmenting values into blocks, the system can perform write operations at the block level rather than requiring full value replacement. This reduces write amplification and extends storage media lifespan by minimizing the number of write cycles, while the store structure remains relatively simple through the use of block pointers and indexing mechanisms.

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If block objects are created and stored instead of the entire data object, then partial data access is enabled, but the key-value store complexity increases

Engineering Contradiction:
Improvepartial data access capabilityVSAvoidkey-value store structure
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces block objects as intermediary elements between the original data objects and the storage system. Each block object contains a pointer to the corresponding data block and metadata for tracking, serving as a mediator that enables partial access while organizing the complexity into a manageable layer structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

When a data object is first stored, the system preliminarily divides it into blocks and creates corresponding block objects with metadata. This preliminary organization enables subsequent partial access operations to proceed efficiently without requiring complex on-demand segmentation, as the block structure is pre-established.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11030156B2Key-value store with partial data access
Publication Date: 2021.06.08 SANDISK TECHNOLOGIES LLC
  • US11030156B2 patent drawing
  • US11030156B2 patent drawing
  • US11030156B2 patent drawing

AI summary

Apparatuses, systems, methods, and computer program products are disclosed for key-value stores with partial data access. An interface module is configured to receive a data object for storage in a key-value store. The data object may include a key and a value. A block object module is configured to generate a plurality of block objects smaller than the data object. A block object may include a new key and a new value. The new key may be based on the key for the data object and on metadata for the new value. The new value may be based on at least a portion of the value for the data object. A storage module is configured to store the block objects in the key-value store.