Ring Buffer Out-of-Order Updates via Pending Records

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing systems using ring buffers, the interaction between multiple producers and consumers can lead to bottlenecks and scalability issues due to the need for strict ordering of updates, causing non-determinism and serialization of threads, especially when one producer or consumer is stalled, affecting the throughput and latency.

Innovation Solution

The implementation of a ring buffer system that uses a base record and pending update records to allow out-of-order updates by generating new pending update records and forming a linked list of these records, enabling delegation and reducing dependency chains, thus allowing processes to continue without waiting for earlier updates to complete.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If lock-based approach is used to ensure thread safety in ring buffer access, then data consistency is maintained, but throughput deteriorates due to serialization of all threads

Engineering Contradiction:
Improvedata consistencyVSAvoidthroughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the ring buffer access into two independent parts: the data structure itself and the update records. Multiple threads can access different segments (slots) of the ring buffer simultaneously without locking, while update records are processed independently. This segmentation eliminates the need for global locks while maintaining data consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces update records as an intermediary mechanism between threads and the ring buffer. Instead of threads directly modifying the ring buffer and blocking each other, they generate update records that are processed separately. This intermediary allows threads to proceed without waiting for others, maintaining consistency through the update record processing mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If strict ordering of updates is enforced to maintain correct sequence, then data ordering is preserved, but latency increases due to thread stalling

Engineering Contradiction:
Improvedata orderingVSAvoidlatency
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by having threads generate update records in advance without waiting for previous updates to complete. The update records capture the intended modifications, and the actual application of these updates maintains ordering through the processing mechanism rather than through thread synchronization. This allows threads to proceed without stalling while preserving data ordering.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If one producer or consumer is stalled due to cache miss or external interaction, then data accuracy is maintained, but scalability deteriorates as other threads must wait

Engineering Contradiction:
Improvedata accuracyVSAvoidscalability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments thread operations into independent update record generation and processing phases. When one thread is stalled, other threads can continue generating their update records without being blocked. The segmentation isolates the stall to a single thread's update processing while allowing others to proceed, thereby maintaining data accuracy through the structured update mechanism while improving scalability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables continuity of useful action by allowing multiple threads to continuously generate update records independently. Even when one thread is stalled during update processing, other threads can continue their useful work of generating and queuing updates. This eliminates the serialization effect where all threads must wait for a single stalled thread, thereby maintaining reliability while enabling scalability.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10353629B2Handling in-order and out-of-order ring buffer updates
Publication Date: 2019.07.16 ARM LTD
  • US10353629B2 patent drawing
  • US10353629B2 patent drawing
  • US10353629B2 patent drawing

AI summary

Techniques are provided in which a ring buffer comprises multiple slots for a queued sequence of data items. New data items are sequentially added to the queued sequence and sequentially removed for further processing. A base record comprises a reference indicator, wherein a value of the reference indicator is indicative of a current slot of the multiple slots of the ring buffer. A pending update record is provided comprising a subject slot indicator, an update slot indicator, and a next update pointer for pointing to another pending update record. The base record further comprises a pending update record pointer. When there is an update to be applied to the value of the reference indicator of the base record, but the update is out-of-order, i.e. references a different slot to the current slot, a new pending update record is generated indicative of the update. Techniques for allocating and releasing elements in an array shared by multiple threads are also disclosed.