Hierarchical Data Ancestry Cache for Database Query Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for determining an item's ancestry in a database, such as querying successive parents or using self-joins, become inefficient as the depth of the hierarchy grows, especially in high-performance applications with arbitrarily deep item hierarchies, and are difficult to implement due to fixed query structures.

Innovation Solution

Storing an item's ancestry as a cache in the database, allowing for efficient retrieval and updates by creating a parent-relative cache structure that includes information defining the hierarchy, reducing the need for repeated queries and enabling efficient updates across descendant items.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional querying methods (successive parent queries or self-joins) are used to determine ancestry, then the implementation is straightforward with standard SQL queries, but the query overhead and processing time increase significantly as the depth of the hierarchy grows

Engineering Contradiction:
Improvequery efficiencyVSAvoidquery processing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent pre-computes and stores the ancestry information for each item in the database, so that when a query is needed, the information is already available without requiring runtime computation through successive queries or self-joins. This preliminary action eliminates the performance degradation that occurs with deep hierarchies.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a cached copy of the ancestry information and stores it in the database alongside the original hierarchical data. This copy allows for rapid retrieval without repeatedly executing complex queries against the source hierarchical structure, thus improving query efficiency while maintaining data integrity.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If the query structure uses a fixed number of self-joins to handle ancestry retrieval, then the query implementation is simplified, but the system cannot efficiently handle hierarchies deeper than the predetermined number of ancestors

Engineering Contradiction:
Improvehandling of arbitrary hierarchy depthVSAvoidquery structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

By pre-computing ancestry information and storing it in the database, the system adapts to any hierarchy depth without requiring complex or dynamic query structures. The cached ancestry data automatically accommodates arbitrary depths, eliminating the need for adjustable self-join configurations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the storage parameter of ancestry information from being dynamically computed through queries to being statically stored in the database. This parameter change allows the system to handle arbitrary hierarchy depths efficiently, as the stored ancestry data reflects the actual depth regardless of how deep the hierarchy becomes.

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If successive parent queries are executed for each item to determine ancestry, then the query logic is simple to implement, but the total number of queries and processing overhead increase linearly with the number of ancestors

Engineering Contradiction:
Improveimplementation easeVSAvoiddata retrieval efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent creates and stores a cached copy of the ancestry information in the database, transforming the retrieval process from executing multiple successive queries to performing a single efficient database lookup. This copy maintains implementation simplicity while dramatically improving data retrieval efficiency.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent extracts the ancestry information from the hierarchical structure and stores it separately in the database as pre-computed data. This extraction eliminates the need to repeatedly traverse the hierarchical structure through successive queries, thereby improving productivity while maintaining implementation ease through standard database operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7840561B2Retrieving hierarchical data
Publication Date: 2010.11.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7840561B2 patent drawing
  • US7840561B2 patent drawing
  • US7840561B2 patent drawing

AI summary

Hierarchical data may be provided. First, first data may be received corresponding to a first item. The first item may correspond, for example, to a web site. Next, a first cache may be created corresponding to an ancestry of the first item. In creating the first cache, information may be included configured to define a hierarchy of the first item. The first item may correspond to a child web site and the information in the cache may correspond to a plurality of parent web sites higher in the hierarchy and being related to the child web site. The first cache may include the plurality of parent web sites in a parent-relative fashion. Then, the received first data corresponding to the first item may be stored in a database. In addition, the first cache may be stored in the database as a property of the stored first item.