Index Tree Search Range Allocation for Database Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional database management systems face performance bottlenecks due to exclusive conflicts between threads during index access processing, particularly when multiple threads access the same data structure in parallel, leading to reduced throughput and load imbalance issues.

Innovation Solution

An index tree search method that allocates search ranges to multiple threads, allowing only accessible nodes to be subject to exclusive control, thereby reducing the frequency of exclusive conflicts and enabling load balancing without altering the index tree structure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If exclusive control is executed to intermediate nodes and lower-level nodes in index tree search, then data consistency is maintained, but the granularity of exclusive control becomes large causing frequent conflicts and performance degradation

Engineering Contradiction:
Improvedata consistencyVSAvoidindex access speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the index tree into multiple independent search ranges, each assigned to different threads. This segmentation allows threads to access different portions of the index tree simultaneously without requiring exclusive control on the entire tree or intermediate nodes, thereby reducing lock conflicts while maintaining data consistency within each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies exclusive control only locally to specific leaf nodes or small portions of the index tree that are actually being modified, rather than applying it globally to intermediate nodes and entire search ranges. This local quality approach minimizes the scope of exclusive control, reducing conflicts between threads while ensuring data consistency at the point of modification.

Inventive Principle:
Principle #3Local quality

2Productivity

If index tree structure is changed to balance thread loads, then load balancing is achieved, but processing load increases due to data structure changes and exclusive control between subtrees

Engineering Contradiction:
Improveload balancingVSAvoiddata structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent dynamically adjusts the allocation of search ranges to threads based on observed load conditions, allowing the system to adapt to imbalanced workloads without changing the underlying index tree structure. This dynamic reassignment of search ranges enables load balancing while avoiding the complexity of modifying the index tree data structure itself.

Inventive Principle:
Principle #15Dynamics

3Productivity

If multiple threads access the same index tree simultaneously, then processing throughput increases, but exclusive conflicts between threads occur reducing simultaneous access performance

Engineering Contradiction:
Improveprocessing throughputVSAvoidexclusive control wait time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the index tree into multiple independent search ranges that can be accessed simultaneously by different threads. This segmentation eliminates the need for exclusive control on shared intermediate nodes, allowing multiple threads to operate in parallel without waiting for locks, thereby increasing throughput while minimizing wait time.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10565190B2Index tree search method and computer
Publication Date: 2020.02.18 HITACHI LTD
  • US10565190B2 patent drawing
  • US10565190B2 patent drawing
  • US10565190B2 patent drawing

AI summary

An index tree search method, by a computer, for searching an index tree included in a database provided by the computer which includes processors executing a plurality of threads and a memory, the index tree search method comprising: a first step of allocating, by the computer, search ranges in the index tree to the plurality of threads; a second step of receiving, by the computer, a search key; a third step of selecting, by the computer, a thread corresponding to the received search key; and a fourth step of searching, by the computer, the index tree with the selected thread using the received search key.