Trie Data Structure with Subtrie Blocks for Database Key Lookup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current implementations of trie data structures in database systems result in a high number of memory requests when traversing branches, as they store all nodes of a level in memory before fetching the next level, leading to inefficient cache usage and increased processing time.
Innovation Solution
Implementing a trie data structure with subtrie data structures, where each subtrie is stored as a continuous block in system memory, including node information and pointer information to load subsequent subtries into the cache without accessing unnecessary nodes, reducing the number of memory requests required to traverse multiple levels.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If all nodes of a level are stored in memory before fetching the next level, then the trie data structure can be implemented in a straightforward manner, but the number of memory requests increases and cache usage becomes inefficient
Solution Approach 1:
The patent divides the traditional trie data structure into multiple subtries, where each subtrie contains only the nodes necessary for a specific key traversal path. This segmentation eliminates the need to load all nodes of a level into memory, reducing memory requests while maintaining traversal functionality. Each subtrie is a self-contained unit that can be independently loaded and processed.
Solution Approach 2:
The patent extracts only the necessary nodes for each key traversal path from the complete trie structure, creating minimal subtries. This extraction principle removes unnecessary nodes from memory operations, allowing the system to load and process only the relevant portions of the trie for each lookup operation, thereby improving cache efficiency and reducing memory requests.
2Reliability
If all nodes of a level are loaded into memory, then the complete trie structure is available for traversal, but the processing time increases due to inefficient cache usage
Solution Approach 1:
By segmenting the trie into subtries corresponding to specific key paths, the patent enables selective loading of only necessary nodes into cache. This maintains traversal completeness for the target key while avoiding the overhead of loading entire levels, thus reducing processing time without sacrificing reliability.
Solution Approach 2:
The patent performs preliminary organization of trie nodes into subtries during data structure construction, grouping nodes by their traversal paths. This preliminary action enables efficient cache utilization during traversal operations, as the system can directly load the pre-organized subtrie corresponding to the target key without unnecessary memory operations.
3Adaptability or versatility
If the traditional trie structure is used, then all nodes are accessible for any key lookup, but the number of memory requests increases when traversing multiple levels
Solution Approach 1:
The patent segments the trie into multiple subtries, each containing nodes for a specific key traversal path. This segmentation maintains adaptability for any key lookup while reducing memory requests, as the system only needs to access the subtrie corresponding to the target key rather than loading entire levels for every possible key.
Solution Approach 2:
The patent creates simplified copies of the trie structure in the form of subtries, where each subtrie is a minimal representation containing only the nodes necessary for specific key paths. These copies enable efficient lookups by eliminating the need to access the complete trie structure for every operation, thereby reducing memory requests while preserving lookup flexibility.
Data Source
AI summary
Techniques are disclosed relating to tree data structures capable of storing information indicative of database keys. A computer system may operate a database. The computer system may store a multi-level tree data structure usable to perform key lookups for the database. In various cases, the multi-level tree data structure may be stored in system memory as a plurality of subtree data structures each comprising a set of linked nodes. A given one of the plurality of subtree data structures may be stored as a respective continuous block of information in system memory. The computer system may access the respective continuous block for a first particular subtree data structure encompassing a particular range of levels in the multi-level tree data structure. The accessing may be performed without accessing one or more other subtree data structures encompassing one or more levels within the particular range of levels.


