Dynamic Key Space Allocation in B+ Tree Data Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional B+ tree implementations allocate a fixed amount of memory space for each key based on the maximum possible key space, leading to wasted memory when the actual key space is smaller, resulting in inefficient memory usage and performance issues.

Innovation Solution

The system dynamically allocates memory for keys based on the expected key space during tree instantiation and leverages the hierarchical organization of B+ trees to allocate different sized keys on a per-node basis, reducing memory consumption and optimizing key sizes according to the actual key space needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed amount of memory space is allocated for each key based on the maximum possible key space, then the tree can support the largest possible key space, but memory space is wasted when the actual key space is smaller

Engineering Contradiction:
Improvekey space support rangeVSAvoidmemory space waste
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent applies local quality by allowing different nodes in the B+ tree to have different key size allocations based on their specific key space requirements. Instead of uniformly allocating 64 bits for all keys, the system dynamically determines the appropriate key size for each node based on the actual key space it needs to address, thereby reducing memory waste while maintaining adaptability across the entire tree structure

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamics by making the key space allocation flexible and adaptive rather than fixed. The system dynamically adjusts the key size at each node based on the actual key space requirements, allowing the tree structure to adapt to different key space sizes (from small to maximum) without wasting memory, thus resolving the contradiction between versatility and memory efficiency

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If larger key space is supported with fixed 64-bit keys, then the tree can address up to 256 TB, but the number of keys per node decreases due to increased key size

Engineering Contradiction:
Improvekey space addressable rangeVSAvoidnumber of keys per node
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting the key size parameter based on the actual key space requirements. Instead of using a fixed 64-bit key size, the system changes the key size parameter to match the minimum bits required to address the actual key space, thereby maximizing the number of keys per node while still supporting the required key space range

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If fixed 64-bit keys are used for all nodes, then implementation is simple and consistent, but memory overhead becomes significant when many trees are maintained concurrently

Engineering Contradiction:
Improveimplementation simplicityVSAvoidmemory overhead
Core Design Contradiction:
Ease of manufactureVSLoss of energy

Solution Approach 1:

The patent applies local quality by allowing different key size allocations at different nodes based on their specific requirements. This localized adaptation reduces memory overhead for nodes that don't need full 64-bit keys, while maintaining implementation feasibility through systematic determination of key sizes based on actual key space needs

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10262016B2Tuning key space at the time of instantiation of a tree data structure
Publication Date: 2019.04.16 VMWARE INC
  • US10262016B2 patent drawing
  • US10262016B2 patent drawing
  • US10262016B2 patent drawing

AI summary

Techniques for tuning the key space of an instance of a tree data structure are provided. In one embodiment, a computer system can receive a request to create the instance, where the request includes an expected key space value indicating an expected range of key values to be addressed by the instance. The computer system can further calculate a number of bits to allocate to each key of each node of the instance based on the expected key space value. The computer system can then, at a time of instantiating each node of the instance, allocate the keys for the node in accordance with the calculated number of bits.