Cache-Sensitive Index Using Partial Keys for DNS Lookup Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvelookup speedVSAvoidpointer overhead
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #5Merging (Combining)

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

Engineering Contradiction:
Improvecache efficiencyVSAvoidnumber of keys
Core Design Contradiction:
ProductivityVSQuantity of substance

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Volume of stationary object

If partial keys are used instead of full keys, then the index size is reduced, but the comparison cost increases

Engineering Contradiction:
Improveindex sizeVSAvoidcomparison cost
Core Design Contradiction:
Volume of stationary objectVSDifficulty of detecting and measuring

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.

Inventive Principle:
Principle #16Partial or excessive action

4Speed

If the index is optimized for fast lookup, then real-time update performance deteriorates

Engineering Contradiction:
Improvelookup speedVSAvoidupdate performance
Core Design Contradiction:
SpeedVSEase of manufacture

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9613128B2Systems and methods for a cache-sensitive index using partial keys
Publication Date: 2017.04.04 VERISIGN INC
  • US9613128B2 patent drawing
  • US9613128B2 patent drawing
  • US9613128B2 patent drawing

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.