Time Split B-Tree Indexing for Database Version Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database systems face challenges in providing high-performance access to historical data, which impedes the adoption of temporal functionality due to cumbersome layering of temporal support and limited access to historical versions.

Innovation Solution

A transaction time database system utilizing a Time Split B-tree index that allows logarithmic access to all historical versions, combined with delta compression to improve performance, and integrates with the native B-tree access method for concurrency control and recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional B-tree indexing is used for current data, then current data access performance is maintained, but historical data access becomes linear and inefficient

Engineering Contradiction:
Improvehistorical data access speedVSAvoidindexing structure complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the B-tree indexing structure into two distinct parts: a traditional B-tree for current data and a Time-B-tree for historical data. This segmentation allows each tree to be optimized for its specific purpose - the traditional B-tree maintains fast current data access while the Time-B-tree provides efficient logarithmic access to historical versions through time-based indexing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a time dimension to the traditional B-tree structure by creating a Time-B-tree that indexes historical data versions chronologically. This dimensional extension transforms the single-dimension key-based indexing into a multi-dimensional system that can efficiently access data by both key and time, enabling logarithmic historical data access without compromising current data performance.

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

2Reliability

If all historical versions are stored completely, then complete queryable history is maintained, but storage costs increase

Engineering Contradiction:
Improvecompleteness of historical dataVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements delta compression by storing only the differences (deltas) between consecutive historical versions rather than copying complete records. Each historical version is represented as a set of changes applied to the previous version, dramatically reducing storage requirements while maintaining the ability to reconstruct any historical state through sequential application of deltas.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent applies compression selectively to historical data versions while maintaining full fidelity for current data. By compressing only the delta information for historical versions and keeping the base record intact, the system achieves space efficiency for historical storage without compromising the completeness or accessibility of the most recent data state.

Inventive Principle:
Principle #3Local quality

3Quantity of substance

If delta compression is applied to historical versions, then storage efficiency improves, but access time may increase due to decompression requirements

Engineering Contradiction:
Improvestorage space for historical dataVSAvoiddata access time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent pre-computes and stores cumulative delta information in the Time-B-tree index, allowing the system to jump directly to any historical version without sequentially applying all previous deltas. This preliminary organization of delta data enables efficient random access to any historical state by retrieving pre-packaged delta sets, avoiding the time cost of sequential reconstruction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The Time-B-tree serves as an intermediary structure that stores pre-processed delta information and metadata about historical versions. This intermediary layer enables the system to efficiently locate and retrieve specific historical versions without direct sequential access to all underlying delta records, significantly reducing access time while maintaining compression benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Speed

If Time Split B-tree is implemented for temporal applications, then logarithmic access to historical versions is achieved, but integration with native B-tree becomes complex

Engineering Contradiction:
Improveaccess speed to historical versionsVSAvoidintegration complexity with base engine
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent extracts the temporal indexing functionality from the traditional B-tree by creating a separate Time-B-tree structure that handles historical data independently. This extraction allows the native B-tree to continue handling current data with its well-understood operations while the Time-B-tree provides specialized logarithmic access to historical versions, reducing integration complexity by separating concerns.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent designs the Time-B-tree to serve multiple functions: it indexes historical data versions, stores delta compression information, and provides time-based query capabilities. This multi-functionality consolidates what would otherwise require separate mechanisms into a single unified structure, simplifying the overall system architecture while achieving logarithmic access to historical data.

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

Data Source

PatentUS7747589B2Transaction time indexing with version compression
Publication Date: 2010.06.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7747589B2 patent drawing
  • US7747589B2 patent drawing
  • US7747589B2 patent drawing

AI summary

A system and method that facilitates and effectuates transaction time indexing with version compression. The system includes an indexing component that partitions a database page containing multiple temporally related versions of a record into a historical page and a current page based at least in part on a time or a key. The system includes a compression component that constructs backward deltas for compressing earlier (historical) versions of records that are stored on the page. Because there is always an uncompressed version for each record on each page, decompression can be done based solely on information stored on the record's page.