Sequence Identifier Wakeup Ordering for Processing Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems experience inefficiencies due to spurious wakeups, where processing streams are awakened unnecessarily, leading to wasteful use of system resources, as they begin waiting during delays between resource modification and the processing of wake-up signals.

Innovation Solution

The implementation of a synchronization data structure and algorithm that uses sequence identifiers to determine the chronological order of processing streams and wake-up signals, ensuring only eligible streams are awakened, thereby reducing spurious wakeups by associating numeric sequence identifiers with processing streams and wake-up signals and utilizing processing stream groups to further optimize wake-up operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple processing streams are awakened when a resource is modified, then all waiting streams can access the resource, but spurious wakeups occur causing unnecessary resource usage

Engineering Contradiction:
Improveaccuracy of wakeup signalingVSAvoidsystem resource waste
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by assigning sequence identifiers to processing streams before they begin waiting for resources. When a resource is modified, the system uses these pre-assigned identifiers to determine which streams are eligible to wake up, preventing spurious wakeups of streams that started waiting after the modification. This advance preparation of identification data enables precise wakeup control.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of wakeup signaling from a simple broadcast notification to a selective notification based on sequence identifier comparison. By introducing this identification parameter and comparing it against the resource modification timestamp, the system transforms the wakeup mechanism to distinguish between eligible and ineligible streams, eliminating unnecessary wakeups.

Inventive Principle:
Principle #35Parameter changes

2Loss of energy

If sequence identifiers are used to determine wakeup eligibility, then spurious wakeups are reduced, but system complexity increases

Engineering Contradiction:
Improvesystem resource efficiencyVSAvoidsynchronization mechanism complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent uses copying by maintaining a simplified copy of the resource modification timestamp in each processing stream's context. Instead of implementing complex inter-stream communication or centralized tracking, each stream holds a local copy of the identifier it needs to compare, enabling independent eligibility determination without complex coordination overhead.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The synchronization mechanism applies self-service by enabling each processing stream to independently determine its own wakeup eligibility by comparing its assigned sequence identifier against the resource modification timestamp. This eliminates the need for complex centralized arbitration or inter-stream signaling, as each stream autonomously makes the correct wakeup decision.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10817349B2Wake-up ordering of processing streams using sequential identifiers
Publication Date: 2020.10.27 RED HAT INC
  • US10817349B2 patent drawing
  • US10817349B2 patent drawing
  • US10817349B2 patent drawing

AI summary

Systems and methods for waking up waiting processing streams in a manner that reduces the number of spurious wakeups. An example method may comprise: assigning identifiers of a sequence of identifiers to wakeup signals and to processing streams, the sequence of identifiers representing a chronological order that the wakeup signals are initiated and the processing streams begin waiting, wherein each of the identifiers is exclusively assigned to either a wakeup signal or a processing stream and the sequence of identifiers comprises a first identifier associated with a wakeup signal; and responsive to receiving the wakeup signal, avoiding waking a processing stream associated with an identifier greater than the first identifier.