Dynamic Shared Memory Hash Table for Network Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network elements face inefficiencies with statically sized forwarding tables that cannot grow to accommodate increasing data, leading to memory waste and inability to support large routing tables and multiple virtual routing and forwarding instances, resulting in performance limitations and inefficient resource allocation.

Innovation Solution

A dynamic shared memory hash table that grows and shrinks as needed, using notification-based mechanisms to manage table sizes dynamically, allowing for in-place expansion and contraction without requiring new memory allocation, and utilizing slot identifiers for efficient notification and data access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If statically sized forwarding tables are used, then memory allocation is simple and fixed, but the table cannot grow to accommodate increasing data leading to memory waste and inability to support large routing tables

Engineering Contradiction:
Improvetable size adaptabilityVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a dynamic shared memory hash table that can grow and shrink in size based on the actual data storage needs. The table size is no longer fixed but adapts dynamically, allowing the system to support varying routing table sizes and multiple virtual routing and forwarding instances efficiently.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The hash table is divided into multiple segments or partitions that can be independently managed. This segmentation allows the table to grow by adding new segments rather than requiring complete reallocation, reducing memory management complexity while enabling flexible size adaptation.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If statically sized tables are used, then resource allocation is straightforward, but memory is wasted when data volume is small and large tables cannot be supported when data grows

Engineering Contradiction:
Improvememory utilization efficiencyVSAvoiddata processing throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The dynamic sizing mechanism allows the hash table to optimize memory utilization by expanding when data volume increases and contracting when data volume decreases. This eliminates both memory waste in small-data scenarios and capacity limitations in large-data scenarios, improving overall memory utilization efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the size parameter of the hash table dynamically based on data volume. By adjusting this key parameter, the system achieves efficient memory utilization across varying data conditions while maintaining high data processing throughput.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If table size is increased to support large routing tables, then capacity is sufficient, but memory allocation becomes inefficient and performance is limited

Engineering Contradiction:
Improvetable capacityVSAvoidsystem performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

By segmenting the hash table into multiple smaller units that can be independently allocated and managed, the system achieves both large total capacity and efficient memory allocation. Each segment can be optimally sized and placed in memory, avoiding the performance penalties of large contiguous allocations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The dynamic nature of the segmented hash table allows the system to allocate capacity efficiently - creating segments only when needed and removing them when no longer required. This maintains high system performance by avoiding unnecessary memory allocation overhead while providing sufficient capacity for large routing tables.

Inventive Principle:
Principle #15Dynamics

4Productivity

If multiple readers access the table concurrently, then distributed processing is enabled, but read conflicts occur when writer is updating the table

Engineering Contradiction:
Improveconcurrent processing capabilityVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The hash table is divided into multiple segments that can be accessed independently by different readers and writers. This segmentation enables concurrent access without conflicts - readers can access one segment while writers update another, maintaining data consistency while enabling distributed concurrent processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a notification mechanism that acts as an intermediary between writers and readers. When a writer updates data, the notification system mediates by informing readers of the changes, allowing readers to obtain consistent data without direct conflict with writer operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11860861B2Growing dynamic shared memory hash table
Publication Date: 2024.01.02 ARISTA NETWORKS INC
  • US11860861B2 patent drawing
  • US11860861B2 patent drawing
  • US11860861B2 patent drawing

AI summary

A method and apparatus of a device that grows and/or shrinks a table that is shared between a writer and a plurality of readers is described. In an exemplary embodiment, a device receives an entry to be added to the shared table. In response to receiving the entry, the device remaps shared table to add a new storage segment to the shared table. The device further adds the entry to the shared table, where the entry is stored in the new storage segment. In addition, the device updates a shared table characteristic to indicate that the shared table has changed. The device further shrinks the shared table by remapping the table to remove a segment of the table.