Elevator-Stairs Data Structure for Fast Dictionary Operations
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing dictionary data structures, such as search trees and hashing methods, are inefficient for big data applications due to slow search and update times, especially for range queries and longest common prefix matching, which are critical for handling massive data with continuous updates.
Innovation Solution
The construction of an elevator-stairs tree and/or log W elevators data structure, combined with a PATRICIA trie, allows for fast searches and updates by switching between these data structures based on query lengths, reducing the upper bound of running times for search, insert, delete, and range query operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If search trees (binary search tree, B+ tree) are used for dictionary operations, then the data can be stored in a structured manner, but the search and update times become too slow for big data applications
Solution Approach 1:
The patent segments the dictionary data structure into multiple levels (e.g., level 0, level 1, level 2) where each level handles different ranges of keys. This segmentation allows parallel processing of search operations across different levels, reducing the overall search time from O(log n) to O(1) amortized by distributing the search workload across multiple concurrent structures.
Solution Approach 2:
The patent introduces a new dimension by using an array of dictionaries instead of a single hierarchical tree structure. Each dictionary in the array operates independently and can be accessed simultaneously, transforming the single-path search of traditional trees into a multi-path parallel search, effectively adding a dimensional aspect to the data access pattern.
2Speed
If hashing methods are used for fast search, then search speed improves, but range query operations incur very large time penalties
Solution Approach 1:
The patent creates a universal data structure that serves multiple functions: individual key search, range queries, and prefix matching. By maintaining an array of dictionaries with overlapping key ranges, the system can efficiently handle both point queries (using hash-based lookup) and range queries (by identifying and querying only the relevant subset of dictionaries), making the structure multi-functional without sacrificing performance in either case.
3Loss of time
If PATRICIA trie is used for dictionary operations, then theoretical running times are good, but practical performance is slow due to many random memory accesses
Solution Approach 1:
The patent uses copying by maintaining multiple copies of dictionary data in an array structure, where each dictionary is a self-contained hash table. This eliminates the need for deep tree traversals and random memory accesses characteristic of PATRICIA tries, as all necessary data for a given key range is available in a single, contiguous memory location that can be accessed directly without following pointer chains through multiple levels.
4Quantity of substance
If traditional dictionary structures are used, then memory usage is manageable, but they cannot handle massive continuous updates and search requests efficiently
Solution Approach 1:
The patent applies preliminary action by pre-allocating and pre-organizing data into multiple dictionaries in an array structure, each prepared to handle specific key ranges. This pre-organization allows incoming update and search requests to be immediately routed to the appropriate dictionary without dynamic restructuring or rebalancing operations, enabling the system to handle massive continuous updates and searches at high throughput while maintaining efficient memory utilization.
Data Source
AI summary
A computer-implemented method of constructing and maintaining a record keeping dictionary data structure can include: generating a PATRICIA trie from a set of strings; generating multiple kth-level elevator-stairs data structures at exponentially reducing k-levels, wherein each of the kth-level elevator-stairs data structure includes a kth-level trie corresponding to the PATRICIA trie and wherein nodes of the kth-level trie at string depths of integer multiples of k are accessible through hash table links; and linking nodes in neighboring kth-level tries of the multiple kth-level elevator-stairs data structures where the nodes represent a same node in the PATRICIA trie.


