Threaded Red-Black Tree for Virtual Memory Area Query Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing method for querying and traversing virtual memory areas in Linux technology using a red-black tree results in low query efficiency due to a low cache hit rate, leading to a time complexity of O(n log n) for traversing n virtual memory areas.

Innovation Solution

The method involves determining if a virtual memory area is within an adjacent range of a cached area and using a threaded red-black tree to query for the area, with a thread pointing to predecessor and successor nodes, thereby improving cache hit rates and reducing traversal time complexity to O(n).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a red-black tree is used to query virtual memory areas, then the data structure provides balanced search capabilities, but the cache hit rate is low resulting in O(n log n) time complexity for traversal

Engineering Contradiction:
Improvevma query efficiencyVSAvoidtraversal time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-establishing threaded connections between nodes during the construction of the red-black tree. Threads are inserted into each node to point to predecessor and successor nodes in advance, so that when traversal is needed, the system can immediately follow these pre-computed pointers rather than performing full tree searches from the root each time. This preliminary structuring of navigation paths directly reduces traversal time while maintaining the balanced search properties of the red-black tree.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If traversal starts from the root node for each query, then the red-black tree structure can be used, but the query efficiency is low due to repeated full-tree traversals

Engineering Contradiction:
Improvequery speedVSAvoidtraversal time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies copying by creating thread copies of navigation paths within each node. Instead of repeatedly traversing from the root to find successor nodes, the patent copies the essential navigation information by storing threaded pointers to predecessor and successor nodes directly in each node. These thread copies enable O(1) access to adjacent VMAs during traversal, eliminating the need for repeated full-tree searches and significantly improving query speed.

Inventive Principle:
Principle #26Copying

3Productivity

If the red-black tree is traversed without threads, then the structure remains simple, but adjacent VMAs cannot be efficiently determined during traversal

Engineering Contradiction:
Improveadjacent VMA access efficiencyVSAvoiddata structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies the nested doll principle by embedding threaded navigation structures within the existing red-black tree nodes. Each node contains not only the traditional VMA data and tree pointers but also nested thread pointers to predecessor and successor nodes. This nested structure allows the system to maintain the original red-black tree hierarchy while embedding additional navigation capabilities within each node, enabling efficient adjacent VMA access without fundamentally changing the overall data structure.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS9003120B2Method and apparatus for querying for and traversing virtual memory area
Publication Date: 2015.04.07 HUAWEI TECH CO LTD
  • US9003120B2 patent drawing
  • US9003120B2 patent drawing
  • US9003120B2 patent drawing

AI summary

Embodiments of the present invention disclose a method and an apparatuses for querying for and traversing a virtual memory area. The method includes: determining whether a virtual memory area (vma) corresponding to a query address is in an adjacent range of a cached vma, and if the vma corresponding to the query address is in the adjacent range of the cached vma, querying for the vma by using a thread on a node of a threaded red-black tree. Since an adjacent range of the cached vma can always be determined, the hit rate of accessing the cache is improved, and the time complexity of implementing the whole vma traversal is O(n), thereby improving vma query efficiency.