Polynomial-Time Index Selection via Bi-Partite Graphs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The index selection problem in databases is challenging due to its NP-hard nature, requiring expensive computation and maintenance, and existing solutions often rely on heuristic methods or manual index selection, which are inefficient for large-scale relational data analysis.
Innovation Solution
A polynomial-time algorithm is developed to compute a minimal set of indices using a bi-partite graph and Dilworth's Theorem, allowing for the automatic selection of indices that cover all searches, thereby reducing memory consumption and runtime by transforming queries into lexicographical orders and range queries.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If indices are used to accelerate primitive searches in relational algebra queries, then query execution speed is improved, but the cost of computing and maintaining indices increases
Solution Approach 1:
The patent transforms the index selection problem by changing the parameter representation from arbitrary index sets to lexicographical orderings of attributes. This parameter transformation enables the use of polynomial-time algorithms (based on Dilworth's Theorem and longest path computations in DAGs) to find optimal indices, rather than relying on expensive NP-hard optimization or heuristics. The lexicographical ordering parameter provides a structured search space that balances query acceleration with computational efficiency.
Solution Approach 2:
The patent applies local quality by selecting indices specifically tailored to the requirements of each query rather than maintaining a comprehensive set of indices for all possible queries. The system analyzes the specific search patterns in the input query and computes a minimal set of lexicographical indices that are locally optimized for those particular search operations, thereby reducing the overall maintenance cost while maintaining query speed for the given workload.
2Speed
If a comprehensive set of indices is maintained to cover all searches, then query performance is improved, but memory consumption increases
Solution Approach 1:
The patent extracts only the essential indices needed for the specific query at hand, rather than maintaining a comprehensive index set. By analyzing the query structure and applying the polynomial-time algorithm to identify the minimal sufficient subset of lexicographical indices, the system extracts precisely those indices that cover the searches in the current query, discarding unnecessary indices and thereby reducing memory consumption while maintaining query performance.
Solution Approach 2:
The patent applies partial action by computing and maintaining only the partial set of indices that is sufficient for the given query rather than a complete set for all possible queries. The system determines the minimal adequate index coverage needed for the specific search operations in the input query, performing just enough indexing to achieve query acceleration without the excessive memory overhead of a comprehensive index set.
3Reliability
If manual index selection is performed by the user, then index selection can be optimized for specific needs, but the complexity and time required for index management increases
Solution Approach 1:
The patent implements self-service by enabling the database system to automatically select optimal indices for queries without requiring manual user intervention. The polynomial-time algorithm based on lexicographical orderings and Dilworth's Theorem allows the system to autonomously analyze query patterns and compute the minimal sufficient index set, thereby maintaining reliable index selection optimization while eliminating the time cost of manual index management.
Solution Approach 2:
The patent applies preliminary action by pre-computing the optimal index set based on the query structure before actual query execution. The system performs the polynomial-time optimization calculation in advance to determine which lexicographical indices are needed, allowing for efficient index creation and maintenance before the query runs, rather than requiring ad-hoc manual selection during query processing.
Data Source
AI summary
A method may use a minimal set of indices for an input query including identifying the input query including primitive searches that are accelerated using indices, and computing a minimal set of indices for the input query using a polynomial-time algorithm by constructing a bi-partite graph comprising a first and a second vertex set. The first and the second vertex set may be a set of searches in both partitions of the bi-partite graph. Each edge of the edge set may connect a vertex in the first vertex set and a vertex in the second vertex set. The method may further include identifying an edge set as a strict subset relation between at least two searches of the set of searches showing up in the first and second vertex set of the bi-partite graph, and performing relational data analysis using the minimal set of indices for input queries.


