Dynamic Shared Memory Hash Table for Network Routing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
4Productivity
If multiple readers access the table concurrently, then distributed processing is enabled, but read conflicts occur when writer is updating the table
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.
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.
Data Source
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.


