Shared Memory Hash Table with Notification Queue for Scalable Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data networking systems face challenges in managing large routing tables with high update rates and multiple readers, leading to issues with data validity and scalability, particularly when handling tables with millions of routes and readers.

Innovation Solution

A shared memory hash table with notification mechanisms that uses slot identifiers and a notification queue to coalesce updates, allowing writers and readers to operate independently with O(1) complexity, and employs wait-free and lock-free protocols to handle concurrency, ensuring data validity and scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a notification model is used to support distributed software development with multiple readers, then adaptability and ease of operation are improved, but the system cannot scale to support large tables with millions of routes and 32 readers

Engineering Contradiction:
Improvenotification model supportVSAvoidtable size and reader count
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The notification mechanism is segmented into individual notification queues for each reader, with each queue tracking only the specific keys relevant to that reader. This segmentation allows the system to scale to many readers without requiring a single centralized notification structure, as each reader independently manages its own notification state.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to the notification model by using a two-dimensional notification structure: notification queues are organized both by reader (vertical dimension) and by key (horizontal dimension). This dimensional organization allows efficient scaling to large tables with millions of routes and multiple readers, as notifications can be selectively delivered based on both reader identity and key changes.

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

2Productivity

If readers read data concurrently with writer updates, then productivity is improved through parallel operations, but data validity is compromised as readers may read partially updated data

Engineering Contradiction:
Improveconcurrent read-write operationsVSAvoiddata validity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The writer performs preliminary actions by atomically updating the entire value in shared memory before generating notifications. This preliminary completion of the write operation ensures that readers will always encounter either the old complete value or the new complete value, never a partially updated state. The notification is generated only after the value update is fully complete.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces notifications as an intermediary mechanism between the writer and readers. Rather than readers directly accessing shared memory and risking reads of partial data, the notification system mediates access by informing readers when complete updates are available. Readers use these notifications to synchronize their reads with complete write operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If traditional notification models are used with limited table sizes, then device complexity is reduced, but scalability is limited to small tables with up to 16,000 routes

Engineering Contradiction:
Improvenotification model simplicityVSAvoidscalability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The notification queue structure is designed to be universal and scalable, serving both small tables with few readers and large tables with millions of routes. The same basic notification queue mechanism works regardless of scale, with the key insight that each reader maintains notification state only for the specific keys it monitors, not for all keys in the table. This universal design eliminates the need for different notification mechanisms at different scales.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2802109B1System and method of a shared memory hash table with notifications
Publication Date: 2018.08.01 ARISTA NETWORKS INC
  • EP2802109B1 patent drawingFigure 1
  • EP2802109B1 patent drawingFigure 2
  • EP2802109B1 patent drawingFigure 3

AI summary

A method and apparatus of a device that includes a shared memory hash table that notifies one or more readers of changes to the shared memory hash table is described. In an exemplary embodiment, a device modifies a value in the shared memory hash table, where the value has a corresponding key. The device further stores a notification in a notification queue that indicates the value has changed. In addition, the device invalidates a previous entry in the notification queue that indicates the value has been modified. The device signals to the reader that a notification is ready to be processed.