Dynamic Shared Memory Hash Table for Counter Data Management
Find Innovative SolutionsGenerate 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
Engineering 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)
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.
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
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.
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
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.
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
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.
Data Source
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.


