Ticket-Based Sequencer for Concurrent Thread Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems, executing multiple concurrent threads simultaneously can lead to incorrect results due to unsynchronized access to shared resources, making it challenging to maintain correct behavior while efficiently utilizing resources like memory and input/output devices.

Innovation Solution

An efficient sequencer is introduced to manage access to shared resources by using ticket values, where threads request access and wait until their ticket value is granted, ensuring ordered execution and preventing concurrent modifications to shared data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads execute concurrently without synchronization, then execution speed and resource utilization improve, but correctness of shared resource access deteriorates

Engineering Contradiction:
Improveexecution speedVSAvoidcorrectness of shared resource access
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a sequencer as an intermediary component that mediates access to shared resources. The sequencer receives ticket values from multiple threads, determines the execution order, and grants access permissions sequentially. This intermediary mechanism allows concurrent threads to execute in parallel while ensuring correct ordered access to shared resources, resolving the contradiction between execution speed and correctness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If threads execute sequentially with synchronization, then correctness of shared resource access is maintained, but execution efficiency and resource utilization deteriorate

Engineering Contradiction:
Improvecorrectness of shared resource accessVSAvoidexecution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary action by having threads register their ticket values with the sequencer before executing their critical sections. The sequencer pre-determines the execution order based on these ticket values and prepares the synchronization state in advance. This allows threads to execute concurrently once granted permission, rather than forcing strict sequential execution, thereby maintaining correctness while improving execution efficiency.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If mutual exclusion is applied to all shared resources, then correctness is ensured, but device complexity and overhead increase

Engineering Contradiction:
ImprovecorrectnessVSAvoidsynchronization overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by implementing fine-grained synchronization where each shared resource or critical section has its own ticket-based control mechanism. Instead of applying blanket mutual exclusion to all resources, the sequencer allows threads to acquire permissions selectively based on their specific needs and ticket values. This localized approach ensures correctness for each resource while minimizing unnecessary synchronization overhead.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11269692B2Efficient sequencer for multiple concurrently-executing threads of execution
Publication Date: 2022.03.08 ORACLE INT CORP
  • US11269692B2 patent drawing
  • US11269692B2 patent drawing
  • US11269692B2 patent drawing

AI summary

Techniques are disclosed for efficiently sequencing operations performed in multiple threads of execution in a computer system. In one set of embodiments, sequencing is performed by receiving an instruction to advance a designated next ticket value, incrementing the designated next ticket value in response to receiving the instruction, searching a waiters list of tickets for an element having the designated next ticket value, wherein searching does not require searching the entire waiters list, and the waiters list is in a sorted order based on the values of the tickets, and removing the element having the designated next ticket value from the list using a single atomic operation. The element may be removed by setting a waiters list head element, in a single atomic operation, to refer to an element in the list having a value based upon the designated next ticket value.