Dual-Buffer Element Processing to Prevent Overrun and Deadlock

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing buffer management techniques in computing systems face issues such as buffer overrun, leading to data loss and deadlock situations, which hinder processing efficiency and flexibility, particularly in real-time systems like electronic trading platforms.

Innovation Solution

Implementing a dual-buffer system with a primary ring buffer and a secondary unbounded buffer to manage element overflow, allowing elements to be added to the secondary buffer when the primary buffer approaches capacity, thereby preventing deadlock and ensuring seamless processing without waiting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If flow control is activated when buffer capacity is approached, then buffer overrun is prevented, but process blocking and deadlock occur

Engineering Contradiction:
Improvebuffer overrun preventionVSAvoidprocess blocking
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system divides the buffer into two separate buffers: a first buffer for storing elements to be processed and a second buffer for storing elements to be added to the first buffer. This segmentation allows the producer thread to add elements to the second buffer when the first buffer is full, preventing blocking while the consumer thread processes elements from the first buffer, thus resolving the contradiction between preventing buffer overrun and avoiding process blocking

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second buffer acts as an intermediary between the producer thread and the first buffer. When the first buffer approaches capacity, the producer thread can continue adding elements to the second buffer without being blocked, and elements are subsequently transferred from the second buffer to the first buffer as capacity becomes available, thereby maintaining reliability while eliminating process blocking

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If threads spin when buffer is full, then buffer overrun is avoided, but processing efficiency decreases due to wasted CPU cycles

Engineering Contradiction:
Improvebuffer overrun avoidanceVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting the buffer system into two separate buffers with distinct purposes (first buffer for processing, second buffer for staging), the system eliminates the need for spinning threads. The producer thread can efficiently add elements to the second buffer without waiting or spinning, while the consumer thread processes elements from the first buffer at its own pace, thereby maintaining reliability while significantly improving processing efficiency by eliminating wasted CPU cycles

Inventive Principle:
Principle #1Segmentation

3Device complexity

If a single buffer is used, then device complexity is low, but deadlock risk increases in real-time systems

Engineering Contradiction:
Improvebuffer structure simplicityVSAvoiddeadlock risk
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system uses a segmentation principle by creating two distinct buffers with clear separation of functions. The first buffer is dedicated to elements being processed, while the second buffer is dedicated to elements waiting to be added. This segmentation breaks the circular wait condition that causes deadlock in single-buffer systems, as the producer and consumer threads operate on different buffers without blocking each other, thereby eliminating deadlock risk while maintaining reasonable device complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second buffer serves as an intermediary that decouples the producer and consumer operations. The producer can add elements to the second buffer independently of the consumer's processing speed, and the consumer can process elements from the first buffer independently of the producer's addition rate. This intermediary structure eliminates the interdependence that leads to deadlock in single-buffer systems, improving reliability while keeping the overall system complexity manageable

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12360926B2Buffering elements for processing
Publication Date: 2025.07.15 TRADING TECHNOLOGIES INTERNATIONAL INC
  • US12360926B2 patent drawing
  • US12360926B2 patent drawing
  • US12360926B2 patent drawing

AI summary

Techniques relating to buffers are disclosed. A first buffer may be for storing a number of elements for processing. Disclosed techniques include providing a second buffer for storing elements for adding to the first buffer, and adding an obtained element to the second buffer when the number of elements in the first buffer is greater than a first threshold. These techniques can prevent overrun of the first buffer while allowing the obtained element to be added to a buffer.