Adaptive Busy-Wait Time for Mutex Lock Threads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In contemporary computing systems, threads spinning on mutex locks with default busy-wait times consume excessive computational resources and degrade system performance, as they either spin repeatedly or go to sleep, leading to inaccurate estimates of busy-wait times.

Innovation Solution

A method is introduced to selectively assign a reduced busy-wait time to threads spinning on mutex locks associated with condition variables, determining if other threads are waiting or spinning, thereby reducing the number of spins and enhancing system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If threads spin on mutex locks with default busy-wait time, then threads can acquire the mutex lock when it is released, but computational resources are consumed excessively and system performance degrades

Engineering Contradiction:
Improvemutex lock acquisitionVSAvoidcomputational resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies dynamics by making the busy-wait time adaptive rather than static. The system dynamically adjusts the busy-wait time based on the current state of the system, specifically whether other threads are waiting or spinning on the same mutex lock. This allows the thread behavior to adapt to changing conditions, reducing unnecessary spinning when other threads are already present, thereby conserving computational resources while maintaining reliable mutex lock acquisition.

Inventive Principle:
Principle #15Dynamics

2Reliability

If threads spin repeatedly on mutex locks, then threads can acquire the mutex lock when it is released, but the number of spins is inaccurate and system performance degrades

Engineering Contradiction:
Improvemutex lock acquisitionVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements feedback by having threads check whether other threads are waiting or spinning on the mutex lock before proceeding with spinning. This feedback mechanism allows the system to adjust the spinning behavior based on real-time information about the state of other threads. When feedback indicates that other threads are already present, the current thread reduces its spinning, thereby improving system performance while still ensuring reliable mutex lock acquisition when needed.

Inventive Principle:
Principle #23Feedback

3Use of energy by moving object

If threads go to sleep instead of spinning, then computational resources are conserved, but threads may miss the mutex lock release and increase waiting time

Engineering Contradiction:
Improvecomputational resource consumptionVSAvoidthread waiting time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent applies dynamics by implementing a state-dependent strategy where threads dynamically choose between spinning and sleeping based on the current system state. When other threads are not present, threads spin with reduced busy-wait time to quickly acquire the mutex lock, minimizing waiting time. When other threads are detected, threads can sleep to conserve computational resources. This dynamic adaptation resolves the contradiction between resource consumption and waiting time by optimizing the choice based on real-time conditions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8769546B2Busy-wait time for threads
Publication Date: 2014.07.01 VALTRUS INNOVATIONS LTD
  • US8769546B2 patent drawing
  • US8769546B2 patent drawing
  • US8769546B2 patent drawing

AI summary

Method to selectively assign a reduced busy-wait time to threads is described. The method comprises determining whether at least one thread is spinning on a mutex lock associated with a condition variable and assigning, when the at least one thread is spinning on the mutex lock, a predetermined reduced busy-wait time for a subsequent thread spinning on the mutex lock.