Hash Table Balanced Tree Neighbor Lookup

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network nodes face inefficiencies in neighbor lookup operations due to high memory access requirements, which impact throughput performance, especially in environments where multiple packets need to be forwarded to the same neighbor node.

Innovation Solution

Implementing a neighbor data structure using a hash table with balanced trees, where each bucket is associated with a unique hash value, allowing for fixed upper bounds on memory accesses and enabling concurrent processing of lookup and update operations without blocking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional memory-based neighbor lookup is used, then mapping information can be stored and reused for multiple packets, but high memory access requirements degrade throughput performance

Engineering Contradiction:
Improvelookup accuracyVSAvoidthroughput performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The neighbor data structure is segmented into multiple levels: a hash table with multiple buckets at the first level, and balanced trees within each bucket at the second level. This segmentation allows the system to distribute lookup operations across multiple independent structures, reducing contention and improving parallel access performance while maintaining lookup accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a traditional flat memory structure to a hierarchical two-dimensional structure combining hash tables and balanced trees. The hash table provides O(1) bucket localization, while the balanced trees within buckets provide organized storage and retrieval. This dimensional change enables fixed upper bounds on memory accesses while supporting concurrent operations.

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

2Adaptability or versatility

If memory accesses are increased to store mapping information for multiple neighbors, then lookup operations can be supported, but access time increases

Engineering Contradiction:
Improveneighbor mapping capabilityVSAvoidaccess time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The hash table pre-computes and stores hash values for each bucket during the data structure construction phase. When a lookup operation occurs, the system only needs to compute one hash value to locate the appropriate bucket, rather than searching through all mapping entries. This preliminary action significantly reduces access time while maintaining the ability to store mapping information for multiple neighbors.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each bucket in the hash table is designed with local quality characteristics, containing a balanced tree optimized for specific hash value ranges. This local organization allows lookup operations to be confined to small, manageable subsets of the total data, reducing the effective search space and access time while maintaining comprehensive neighbor mapping capability across the entire structure.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9270636B2Neighbor lookup operations in a network node
Publication Date: 2016.02.23 ORACLE INT CORP
  • US9270636B2 patent drawing
  • US9270636B2 patent drawing
  • US9270636B2 patent drawing

AI summary

A network node maintains a neighbor data structure in the form of a hash table containing multiple buckets for storing mapping entries, with each entry specifying a local address corresponding to a global address. The table is based on a hash function that generates a corresponding hash value for each global address. Each bucket is associated with a unique hash value and is implemented as a corresponding balanced tree containing a corresponding set of nodes, with each node storing a corresponding mapping entry. Upon receiving a lookup request containing a first global address, the node determines a first bucket by applying the hash function to the first global address, and then traverses a first tree corresponding to the first bucket to find a first entry having a global address equaling the first global address. Concurrent non-blocking access is permitted to various portions of the tree during changes in the tree.