Cache-Sensitive Index Using Partial Keys for DNS Lookup Speed
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database index structures, such as B+ trees, face challenges in optimizing cache memory usage and handling real-time updates in main-memory databases, particularly in high-traffic systems like DNS servers, where fast lookup and authentication are critical.
Innovation Solution
A cache-sensitive index that incorporates partial keys, allowing for efficient node grouping and reduced pointer overhead, enabling faster data access and real-time updates by using fixed-size partial keys that fit within a processor cache line, along with methods for maintaining live updates and bulk loading.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a traditional B+ tree index structure is used, then the path from root to leaf nodes is short, but the number of pointers per node is high, resulting in poor cache efficiency
Solution Approach 1:
The patent segments the index structure into node groups where each group contains multiple nodes stored contiguously in memory. This segmentation reduces pointer overhead by using a single pointer to reference the entire node group rather than individual nodes, while maintaining fast lookup through efficient cache utilization.
Solution Approach 2:
The patent merges multiple nodes into node groups that are stored contiguously in memory. By combining nodes into groups and using a single pointer to reference the group, the patent reduces the number of pointers needed while improving cache efficiency through contiguous memory placement.
2Productivity
If node groups are organized to avoid crossing cache-lines, then cache efficiency is improved, but the number of keys per node is limited
Solution Approach 1:
The patent organizes nodes in groups stored contiguously in memory, effectively adding a grouping dimension to the traditional node structure. This allows the index to optimize for cache efficiency at the node group level while maintaining the ability to store multiple keys within each node, resolving the conflict between cache efficiency and key capacity.
3Volume of stationary object
If partial keys are used instead of full keys, then the index size is reduced, but the comparison cost increases
Solution Approach 1:
The patent uses partial keys (prefixes) instead of full keys in the index nodes. This partial action approach reduces the index size significantly while maintaining efficient comparisons, as the partial keys are sufficient to navigate the index structure and identify the correct leaf nodes containing the full keys.
4Speed
If the index is optimized for fast lookup, then real-time update performance deteriorates
Solution Approach 1:
The patent implements dynamic index maintenance that adapts to different operations. The node group structure allows for efficient lookups while providing flexible update mechanisms that can handle real-time insertions and deletions by modifying individual nodes within groups rather than requiring entire group recopying.
Data Source
AI summary
Systems and methods are disclosed for a cache-sensitive index that uses fixed-size partial keys. The index may include a node comprising a child group pointer, a number of partial keys and a similar number of full-key pointers. The node may also include a record count. The nodes are organized into groups. The groups may contain a number of nodes one greater than the number of partial keys in a node and the nodes in a group may be stored contiguously in memory. The child group pointer and the number of partial keys may fit within a cache line. A method is disclosed for traversing the index, for bulk-loading the index, and for live deletion of records from the index.


