Key-Value Store Memory Optimization via Disk Block Addressing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed-computing systems face performance issues due to excessive memory consumption by key-value stores, which hinder client performance as they require significant memory to store keys and values, leading to resource bottlenecks.

Innovation Solution

Implementing a key-value store that stores keys and values on disk storage instead of memory, using addresses of blocks of keys to locate values, thereby reducing memory usage and optimizing resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If keys and values are stored in memory, then access speed is improved, but memory consumption increases excessively

Engineering Contradiction:
Improveaccess speedVSAvoidmemory consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent extracts the bulk data storage function from memory to disk storage, keeping only essential metadata (addresses of blocks) in memory. This separation allows fast access to location information while storing large volumes of data on disk, resolving the contradiction between access speed and memory consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent transitions from a single-dimensional memory storage model to a hierarchical model with two dimensions: memory for metadata (block addresses) and disk storage for actual data. This dimensional change enables the system to maintain fast access characteristics while dramatically reducing memory requirements.

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

2Ease of operation

If individual key addresses are stored in memory, then key lookup is simplified, but memory usage increases

Engineering Contradiction:
Improvekey lookupVSAvoidmemory usage
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent merges multiple individual key addresses into a single block address that represents a collection of keys stored contiguously on disk. This consolidation reduces the number of address entries needed in memory from potentially millions of individual key addresses to a manageable number of block addresses, simplifying the addressing structure while maintaining lookup efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the key-value store into discrete blocks on disk, where each block contains multiple keys and their corresponding values. This segmentation allows the system to manage data in fixed-size units, making it feasible to store block addresses in memory without requiring all individual key addresses, thus reducing memory usage while preserving lookup capability.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If more memory is allocated to key-value store, then storage capacity is improved, but network performance deteriorates due to resource bottlenecks

Engineering Contradiction:
Improvestorage capacityVSAvoidnetwork performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent extracts the bulk storage function from the memory subsystem to the disk storage subsystem, preventing memory from becoming a bottleneck for network operations. By offloading large data storage to disk, the memory resource remains available for network processing and other performance-critical operations, thus improving overall network performance while maintaining storage capacity.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10795821B2Memory efficient key-value store
Publication Date: 2020.10.06 VMWARE INC
  • US10795821B2 patent drawing
  • US10795821B2 patent drawing
  • US10795821B2 patent drawing

AI summary

A computer system performs a technique for reducing memory usage when a key-value store is being implemented. A first key associated with data is received. A block address of a block of keys is obtained from memory. The block of keys is stored on disk storage, and the keys in the block of keys correspond to respective values stored on the disk storage. The block of keys is obtained from the disk storage using the block address. A second key in the block of keys is located. Locating the second key includes determining that the second key matches the first key. A value of the respective values is obtained using the second key.