Partial Index Maintenance in Distributed Database Nodes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed databases, index maintenance consumes system resources and can be inefficient, particularly in large systems where memory is limited, as not all nodes benefit equally from indexes, leading to reduced overall performance.
Innovation Solution
Each compute node in a distributed database system maintains only the portion of the index relevant to its stored data records, allowing for intelligent trade-offs between index space consumption and usefulness, with partial indexes generated from the full index and monitored for usage to determine if they should be maintained or discarded based on actual benefits.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If indexes are maintained on all compute nodes in a distributed database, then query performance is improved through faster data access, but system resources (memory and processing) are consumed and overall performance is reduced
Solution Approach 1:
The patent divides the database into multiple partitions distributed across compute nodes, with each node maintaining indexes only for its local partition. This segmentation allows each node to have optimized query performance for its data while avoiding the resource overhead of maintaining global indexes across all nodes, thus resolving the contradiction between query speed and overall system productivity.
Solution Approach 2:
Each compute node maintains indexes with properties optimized for its specific local data characteristics rather than using uniform global indexes. This local quality approach enables faster local query performance while reducing the memory and processing resources required at each node, balancing query speed improvement with overall system performance.
2Speed
If indexes are maintained on compute nodes with limited memory, then data access is improved, but the volume of data that may be stored is reduced due to overhead
Solution Approach 1:
By segmenting the database across multiple compute nodes, each node only needs to maintain indexes for its local data partition. This reduces the memory overhead at each node, allowing more of the node's limited memory to be used for storing actual data rather than global indexes, thus improving both data access speed and data storage capacity.
Solution Approach 2:
Each compute node maintains only the partial index necessary for its local data partition rather than complete global indexes. This partial action approach provides sufficient data access speed improvement while minimizing the memory overhead, thereby increasing the volume of data that can be stored on each node.
3Productivity
If partial indexes are maintained on each compute node, then resource overhead is reduced, but index maintenance complexity increases across distributed nodes
Solution Approach 1:
Each compute node autonomously maintains its own local indexes for its data partition without requiring centralized coordination for index operations. This self-service approach reduces resource overhead by eliminating redundant index maintenance across all nodes while managing complexity through decentralized, independent index management at each node.
Data Source
AI summary
Embodiments of the invention enable a database spread over multiple nodes to allow each node to have different indexes over the data in tables, depending on how each node would benefit (or not benefit) from having the index(es). When a database table is spread across the nodes of a multi-node or distributed system, each node may maintain only the portion of the index relevant to that node, if doing so would improve the performance of query processing operations on that node. Further, the database may periodically redistributed across the compute nodes based on index performance. Doing so allows the database system to intelligently trade off between consuming space for the index on a node and the usefulness of having an index on that node.


