Lock-Free Linked List Count Maintenance via Head Node Indexing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel processing systems, maintaining an accurate count of elements in a collection, especially in lock-free algorithms, becomes inefficient due to the need for iterating through the collection, resulting in increased processing time as the number of items increases.

Innovation Solution

Each node in a linked list includes a next pointer field and an index field, allowing concurrent threads to add or remove nodes while updating the index value at the head node to maintain the count, thereby keeping the count accessible without iterating through the entire list.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If iteration through the collection is used to obtain the count in lock-free algorithms, then the count can be obtained, but the processing time increases substantially as the number of items increases

Engineering Contradiction:
Improvecount accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent divides the count maintenance into per-node index fields rather than a single centralized counter. Each node stores an index value representing its position in the list, allowing the count to be determined by examining only the head node's index rather than iterating through all nodes. This segmentation transforms an O(N) operation into an O(1) operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by maintaining index values in each node during insertion and deletion operations. Rather than calculating the count by iterating through nodes when needed, the index information is updated in advance during structural modifications, making the count operation immediately available without traversal.

Inventive Principle:
Principle #10Preliminary action

2Speed

If a centralized count is stored and updated in lock-free algorithms, then the count can be returned quickly, but the algorithm complexity increases substantially

Engineering Contradiction:
Improvecount retrieval speedVSAvoidalgorithm complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

Instead of a single centralized counter requiring complex atomic update operations in lock-free algorithms, the patent segments the count information into individual index fields in each node. This distributes the counting functionality across multiple simple node structures, reducing the complexity of synchronization and update operations while maintaining fast retrieval.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces index fields as intermediary elements between the node structure and the count function. These index values serve as local mediators that store position information, eliminating the need for complex centralized count management while enabling efficient count retrieval through the head node's index.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If the count method is included in a loop for repeated use, then the count can be obtained repeatedly, but the overall processing time increases substantially

Engineering Contradiction:
Improvecount method reusabilityVSAvoidoverall processing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the count information into per-node index fields, allowing the count to be obtained in constant time through the head node. This enables the count method to be called repeatedly within loops without the cumulative O(N) cost that would occur with iteration, making repeated usage highly efficient.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By maintaining index values in advance during node insertions and deletions, the patent prepares the count information beforehand. This preliminary action ensures that repeated count queries within loops can be satisfied immediately without traversal, dramatically reducing overall processing time for applications requiring frequent count operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8312457B2Maintaining a count for lock-free linked list structures
Publication Date: 2012.11.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8312457B2 patent drawing
  • US8312457B2 patent drawing
  • US8312457B2 patent drawing

AI summary

The present invention extends to methods, systems, and computer program products for maintaining a count for lock-free stack access. A numeric value representative of the total count of nodes in a linked list is maintained at the head node for the linked list. Commands for pushing and popping nodes appropriately update the total count at a new head node when nodes are added to and removed from the linked list. Thus, determining the count of nodes in a linked list is an order 1 (or O(1)) operation, and remains constant even when the size of a linked list changes.