B-Tree Leaf Blocks Balancing Fast Writes and Sorted Reads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing tree-based index data structures face a trade-off between writer and reader workload, where sorting entries for quick reading increases writer burden and unsorted entries quicken writing but complicate reading.

Innovation Solution

Implement a B-tree with separate blocks for sorted large blocks for efficient searching and small blocks for fast updates, using hardware for reading and software for writing, with optimizations like shortcut keys, back pointers, and order hints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the writer places all new entries in sorted order, then reading becomes very quick, but writing burden increases

Engineering Contradiction:
Improvereading speedVSAvoidwriting speed
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent divides each leaf node into two separate blocks: a first block that maintains sorted order for efficient reading, and a second block that accepts unsorted writes for fast updates. This segmentation allows the system to simultaneously optimize for both reading speed and writing speed by directing read operations to the sorted first block and write operations to the unsorted second block.

Inventive Principle:
Principle #1Segmentation

2Productivity

If new entries are added in chronological order unsorted by key, then writing is very quick, but reading requires sorting

Engineering Contradiction:
Improvewriting speedVSAvoidreading speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent divides each leaf node into two separate blocks: a first block that maintains sorted order for efficient reading, and a second block that accepts unsorted writes for fast updates. This segmentation allows the system to simultaneously optimize for both reading speed and writing speed by directing read operations to the sorted first block and write operations to the unsorted second block.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-sorts items in the first block during initial data loading or periodic updates, so that read operations can directly access sorted data without requiring runtime sorting. This preliminary sorting action eliminates the sorting overhead during reading operations while maintaining fast write performance in the second block.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If the entire leaf node is kept sorted, then searching is efficient, but updating requires maintaining sort order

Engineering Contradiction:
Improvesearch efficiencyVSAvoidupdate complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides each leaf node into two separate blocks: a first block that maintains sorted order for efficient searching, and a second block that accepts unsorted updates. This segmentation allows the system to maintain search efficiency in the first block while simplifying update operations in the second block, as updates do not require maintaining sort order.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies sorting only to the first block of the leaf node rather than the entire leaf node. This partial sorting approach maintains search efficiency for the sorted portion while reducing the complexity of update operations, as new items can be added to the unsorted second block without requiring sort order maintenance.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12399880B2Tree-based data structure
Publication Date: 2025.08.26 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12399880B2 patent drawing
  • US12399880B2 patent drawing
  • US12399880B2 patent drawing

AI summary

A writer writes items to leaf nodes of a tree, and a reader read items from the leaf nodes. Each node comprises a respective first block and second block, the first block comprising a plurality of the items of the respective leaf sorted in order of key. When writing new items to a leaf, the writer writes the new items to the second block of the identified leaf node in an order in which written, rather than sorted in order of key. When reading one or more target items from a leaf, the reader searches the leaf for the one or more target items based on a) the order of the items as already sorted in the first block and b) the reader sorting the items of the second block by key relative to the items of the first block.