Micro-heap allocators for pointer-based data structures in key-value stores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Key-value stores face challenges in supporting arbitrary pointer-based dynamic data structures due to high serialization and deserialization overhead, limiting their ability to handle complex data structures like trees and graphs without converting them into opaque formats.

Innovation Solution

Implementing micro-heaps on a per-data structure basis, each with its own allocator, allows for direct storage and replication of pointer-based data structures in key-value stores without serialization, using micro-heap allocators for memory management and relocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If pointer-based dynamic data structures are stored in key-value stores, then the ability to handle complex data structures like trees and graphs is improved, but serialization and deserialization overhead increases

Engineering Contradiction:
Improveability to handle complex data structuresVSAvoidserialization and deserialization overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent divides the storage system into multiple micro-heaps, each managing a specific portion of the data structure. Each micro-heap allocator independently manages memory for its associated data structure, enabling parallel serialization and deserialization operations. This segmentation reduces the overhead by allowing concurrent processing of different data structure components rather than serializing the entire structure sequentially.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces micro-heap allocators as intermediary components between the key-value store and the pointer-based data structures. These allocators act as mediators that manage memory allocation and deallocation, handle pointer validation, and coordinate serialization/deserialization operations. By inserting this intermediary layer, the system can efficiently manage complex data structures without directly burdening the key-value store with serialization overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If micro-heaps are implemented on a per-data structure basis, then memory management efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvememory management efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a universal micro-heap allocator design that can serve multiple data structures with different requirements. Each micro-heap allocator follows the same interface and management principles, allowing the system to handle various data structure types (trees, graphs, linked lists) uniformly. This universality reduces system complexity by providing a standardized approach rather than requiring custom memory management logic for each data structure type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent employs a hierarchical structure where micro-heaps are nested within the broader key-value store system. Each data structure has its own micro-heap, which in turn contains multiple memory blocks and allocations. This nested organization allows efficient localized memory management at the micro-heap level while maintaining overall system coherence through the parent key-value store, thereby improving memory management efficiency without proportionally increasing system complexity.

Inventive Principle:
Principle #7Nested doll (Nesting)

3Loss of energy

If pointer-based data structures are stored without serialization, then storage overhead is reduced, but reliability and resiliency may be compromised

Engineering Contradiction:
Improvestorage overheadVSAvoiddata replication and resiliency
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The patent performs preliminary validation and metadata recording during the memory allocation phase. Before storing pointer-based data structures without full serialization, the micro-heap allocators pre-validate pointer integrity, record allocation metadata, and establish consistency checks. This preliminary action ensures that when data is replicated or recovered, the pointer-based structures maintain their integrity and reliability without requiring complete serialization/deserialization cycles, thus reducing storage overhead while preserving resiliency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11379408B2Pointer-based dynamic data structures in key-value stores
Publication Date: 2022.07.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11379408B2 patent drawing
  • US11379408B2 patent drawing
  • US11379408B2 patent drawing

AI summary

A computer-implemented method includes receiving data structures in memory space and creating micro-heaps on a per-data structure basis. Each data structure is associated with a micro-heap allocator. The method also includes storing the data structures in a key-value store. Values of the key-value store are associated with the data structures. A computer program product includes one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media. The program instructions include program instructions to perform the foregoing method. A system includes a processor and logic integrated with the processor, executable by the processor, or integrated with and executable by the processor. The logic is configured to perform the foregoing method.