Pipelined Request Processing Shared Memory Atomic Swap

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional web server architectures face inefficiencies due to prolonged processing times and race conditions when assigning data to processes, leading to delays and idle times, as well as potential simultaneous access issues.

Innovation Solution

Implementing a pipelined request processing method using shared memory, where a first process writes data and an identifier to a shared memory segment, and a second process compares and updates the identifier using an atomic compare-and-swap operation to prevent race conditions and ensure efficient data access and processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the sending process transmits a queue of new data in a look-ahead manner to the receiving process, then new data is available to the receiving process when it has completed processing previous data, but the receiving process may take too long for processing the previous data, leading to delays in processing of new data in the queue

Engineering Contradiction:
Improvedata processing delayVSAvoiddata processing throughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent segments the data queue into multiple independent data items that can be individually assigned to different receiving processes. Each data item in the queue is treated as a separate unit that can be processed independently, allowing parallel processing across multiple processes and reducing overall processing delay

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic assignment of data items to receiving processes based on current process availability and processing capacity. The system continuously monitors which receiving processes are idle and dynamically reassigns data items from the queue to available processes, optimizing throughput in real-time

Inventive Principle:
Principle #15Dynamics

2Productivity

If the sending process attempts to reassign data in a queue to another receiving process, then resource utilization is improved, but two receiving processes may access the data simultaneously, leading to race conditions

Engineering Contradiction:
Improveresource utilizationVSAvoiddata access safety
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary mechanism (the sending process acting as a mediator) that controls access to the data queue. The mediator manages the assignment of data items to receiving processes and coordinates access to prevent simultaneous access by multiple processes, eliminating race conditions while maintaining efficient resource utilization

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a feedback mechanism where receiving processes report their status (busy/idle) back to the sending process. The sending process uses this feedback information to make informed decisions about data assignment, ensuring that data is only assigned to processes that are currently available and will not cause simultaneous access conflicts

Inventive Principle:
Principle #23Feedback

3Reliability

If the receiving process sits idle waiting for new data from the sending process, then data processing is completed accurately, but the receiving process incurs idle time, reducing overall system efficiency

Engineering Contradiction:
Improvedata processing accuracyVSAvoidprocess idle time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by having the sending process prepare and queue multiple data items in advance before the receiving process finishes processing current data. This look-ahead approach ensures that when the receiving process becomes idle, data is already available for immediate processing, eliminating idle time while maintaining processing accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent ensures continuity of useful action by maintaining a pipeline of data items ready for processing. The sending process continuously populates the data queue and the receiving process continuously processes data without interruption, eliminating idle periods and maintaining continuous productive operation

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11042424B1Pipelined request processing using shared memory
Publication Date: 2021.06.22 F5 NETWORKS INC
  • US11042424B1 patent drawing
  • US11042424B1 patent drawing
  • US11042424B1 patent drawing

AI summary

Pipelined request processing using shared memory includes writing, by a first process, data associated with a request and an identifier referencing the data to a shared memory segment. The first process transmits, to a second process, the identifier referencing the data. The second process compares the transmitted identifier to the identifier in the shared memory segment. Responsive to the transmitted identifier matching the identifier in the shared memory segment, the second process updates the identifier in the shared memory segment to indicate that the data has been retrieved by the second process. The comparison and update is performed using an atomic compare-and-swap operation. Using the identifiers prevents race conditions between the different processes in trying to access the data. The second process processes the data to generate a response and transmits the response to the first process.