Database Indexing via Pseudorandom Numbers to Mitigate Hot Block Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale cloud-based multitenant computing systems face scalability and performance issues due to 'hot block' problems in B-tree indexes, where concurrent access requests to the latest data changes lead to significant contentions and overload conditions, resulting in non-linear deterioration of database service capabilities.

Innovation Solution

The use of pseudorandom numbers (PRNs) generated by a PRN generator, which are deterministically reproducible using a seed value and a time sequence of numerically ordered invocation numbers, to identify and index data changes, avoiding the concentration of access in a single block and thus mitigating the 'hot block' issue.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If B-tree indexes based on system timestamps are used to manage data changes, then data changes can be accessed in temporal order, but concurrent access requests to the same last blocks cause significant contentions and overload conditions leading to non-linear deterioration of database service capabilities

Engineering Contradiction:
Improvetemporal order accessVSAvoiddatabase service capability
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent changes the indexing parameter from system timestamps to pseudorandom numbers (PRNs). Each data change is assigned a PRN instead of using timestamps for indexing. This parameter change eliminates the temporal ordering requirement while distributing access patterns across the index structure, preventing hot block contention and maintaining database service capability under high concurrency.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent creates a copy of the data change identification mechanism by using PRNs that can be deterministically reproduced from invocation numbers. Instead of relying on system timestamps that cause contention, the system uses these reproduced PRN copies to identify and access data changes, maintaining functionality while eliminating the hot block problem.

Inventive Principle:
Principle #26Copying

2Stability of the object's composition

If system timestamps are used to index data changes, then chronological ordering is maintained, but clock synchronization issues arise in distributed systems

Engineering Contradiction:
Improvechronological orderingVSAvoidclock synchronization
Core Design Contradiction:
Stability of the object's compositionVSReliability

Solution Approach 1:

The patent extracts the ordering function from system timestamps by using invocation numbers that are sequentially assigned by the PRN generator. The chronological ordering is maintained through the sequential nature of invocation numbers rather than through timestamp comparisons, eliminating clock synchronization requirements while preserving the ability to order data changes.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces PRNs as an intermediary between data changes and their identification. Instead of directly using system timestamps that require synchronization, the PRNs serve as a mediator that can be deterministically generated from invocation numbers, providing a reliable ordering mechanism without clock synchronization in distributed systems.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Stability of the object's composition

If sequence numbers are used to identify data changes, then ordering is maintained, but the same hot block problem occurs as with timestamps

Engineering Contradiction:
Improvedata change orderingVSAvoidaccess scalability
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent inverts the traditional approach by not using sequential numbers directly for indexing. Instead of indexing with invocation numbers or sequence numbers that would concentrate access on the last block, it uses pseudorandom numbers generated from these sequential identifiers. This inversion maintains the ordering capability through the generation sequence while distributing access patterns to eliminate hot block contention.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS11860847B2Efficient production and consumption for data changes in a database under high concurrency
Publication Date: 2024.01.02 SALESFORCE INC
  • US11860847B2 patent drawing
  • US11860847B2 patent drawing
  • US11860847B2 patent drawing

AI summary

A seed value assigned to a database table is determined. Numerically ordered invocation numbers are determined. Unordered pseudorandom numbers are generated based on the seed value and the invocation numbers to index temporally ordered data changes to the database table. It is determined whether the total number of yet-to-be-saved pseudorandom numbers reaches a maximum total number threshold. If so, the yet-to-be-saved pseudorandom numbers and a sequence of corresponding invocation numbers are saved in a sync table.