Dynamic Shared Memory Hash Table for Counter Data Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data networking systems face challenges in efficiently managing and retrieving counter data due to issues with concurrent updates in shared memory tables, limited scalability, and high overhead in existing tools, which restrict the number of counters that can be allocated and used in network elements.

Innovation Solution

A dynamic shared memory hash table mechanism that allows for concurrent, wait-free operations with independent writers and readers, using 64-bit atomic load/store operations and slot identifiers for notifications, enabling the system to grow or shrink as needed, and directly writing and reading counter data from a shared memory table with low overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a notification model with static sized tables is used to support distributed software development, then readers can be notified of configuration data changes, but the system cannot support large routing tables (up to one million routes) and multiple readers (32 readers)

Engineering Contradiction:
Improvesupport for large routing tables and multiple readersVSAvoidtable size limitation
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic table sizes that can grow and shrink based on the number of routes and readers. The shared memory table is no longer static but adapts its capacity to support up to one million routes and 32 readers, resolving the limitation of fixed-size tables in the notification model.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If current tools with high overhead are used to retrieve counter data, then counter data can be retrieved, but the number of counters that can be allocated and used is limited

Engineering Contradiction:
Improvenumber of countersVSAvoidoverhead
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The patent extracts the counter data retrieval process from the high-overhead notification model and implements a dedicated counter data structure in shared memory. This separate counter implementation with direct memory access eliminates the overhead of the general-purpose notification mechanism, enabling support for a larger number of counters.

Inventive Principle:
Principle #2Taking out (Extraction)

3Ease of operation

If a writer updates table data while readers read from the same table, then configuration data can be dynamically updated, but readers may read partially updated invalid data

Engineering Contradiction:
Improvedynamic configuration data updatesVSAvoiddata validity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent segments the shared memory table into multiple slots, each with its own version number. When the writer updates data, it increments the version number for that specific slot. Readers check the version number to determine if the data is fully updated, allowing dynamic updates while maintaining data validity through version validation.

Inventive Principle:
Principle #1Segmentation

4Productivity

If the notification model is used to build asynchronous distributed processes, then process cooperation can be achieved, but performance supports only limited sized tables and readers

Engineering Contradiction:
ImproveperformanceVSAvoidtable and reader capacity
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent changes the parameters of the notification model by implementing a shared memory hash table with dynamic sizing capabilities. The table can now accommodate up to one million routes and 32 readers, representing a significant parameter change from the limited capacity of the original notification model while maintaining asynchronous distributed process performance.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10031859B2Pulse counters
Publication Date: 2018.07.24 ARISTA NETWORKS INC
  • US10031859B2 patent drawing
  • US10031859B2 patent drawing
  • US10031859B2 patent drawing

AI summary

A method and apparatus of a device that reads and writes a plurality of counters is described. In an exemplary embodiment, a device receives plurality labels that correspond to the plurality of counters. The plurality of counters is stored in a shared memory table in the shared memory of the device. In addition, a writer writes counter data for each of the plurality of counters to the shared memory table. For each of the plurality of labels, the device performs a lookup of that label for a memory reference to a corresponding counter that is one of the plurality of counters and retrieves the memory reference for the corresponding counter. The device further reads the counter data for plurality of counters using the plurality of memory references. The device additionally sends the counter data to the client.