Block-Based Primary Key Index for Time-Series Database Lookups

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional time-series databases face inefficiencies in handling frequent updates to time-series data, particularly due to the overhead of primary key index lookups and updates, which can significantly impact performance when dealing with large volumes of data.

Innovation Solution

The implementation of a block-based primary key index with fixed-length keys and a Bloom filter, allowing for constant-time access and reducing the number of key comparisons, thereby optimizing the index insert/update logic for efficient primary key lookups.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional primary key index lookups are used in time-series databases, then data retrieval is possible, but the overhead of index lookups and updates significantly impacts performance when dealing with large volumes of data

Engineering Contradiction:
Improvedata retrieval speedVSAvoidindex lookup overhead time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the primary key index into fixed-size blocks that can be independently loaded into memory. This segmentation allows the system to work with smaller, manageable chunks of index data rather than loading the entire index, reducing memory access time and improving cache utilization during lookup operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-computing and storing metadata about index blocks (such as minimum and maximum key values) before actual lookup operations. This allows the system to quickly determine whether a block contains the desired key without scanning all entries, significantly reducing the time required for index lookups.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional primary key index structures are used, then comprehensive data coverage is achieved, but the number of key comparisons increases, reducing lookup efficiency

Engineering Contradiction:
Improvedata completenessVSAvoidlookup throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by organizing index blocks with locally sorted keys within each block and maintaining metadata that describes the range of keys in each block. This local organization allows the system to quickly eliminate entire blocks from the search space during lookups, reducing the number of key comparisons needed while ensuring all relevant data is still accessible.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If dynamic index structures are used to handle frequent updates, then data flexibility is maintained, but the complexity of index insert and update operations increases

Engineering Contradiction:
Improveupdate flexibilityVSAvoidindex operation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where index blocks automatically manage their own structure and metadata. When updates occur, the system performs localized adjustments within blocks rather than restructuring the entire index. This self-managing approach maintains data flexibility while reducing the complexity of update operations compared to traditional dynamic index structures.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250139109A1Time-series database for fast primary key lookups
Publication Date: 2025.05.01 SERVICENOW INC
  • US20250139109A1 patent drawing
  • US20250139109A1 patent drawing
  • US20250139109A1 patent drawing

AI summary

A method for storing and retrieving time-series data in a time-series database is disclosed. A digest associated with a document is obtained. The document is indexed in a search index including a plurality of index entries, wherein the plurality of index entries includes a first index entry having a key based on the digest and a value associated with a storage location of the document, and wherein each of the plurality of index entries has a common fixed key size and a common fixed value size. A search query is received. Whether any entry in the search index matches the search query is determined, including by searching at least a portion of the plurality of index entries of the search index addressable using an offset based on the common fixed key size and the common fixed value size.