Task Counting Without Data Locking Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems lack non-intrusive methods to access low-level statistical data about application performance, leading to inaccurate or crude data when using approximations, and synchronization techniques in concurrent programming inhibit performance by serializing data access.

Innovation Solution

Each processing resource in a scheduler maintains counts of tasks without synchronization, allowing for thread-safe data collection and providing statistics to a resource manager, minimizing the impact on application performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronization techniques are used to access shared data in concurrent programming, then data integrity is ensured, but performance and scalability are inhibited due to serialization of data access

Engineering Contradiction:
Improvedata integrityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the shared data into per-thread local counters, where each thread maintains its own counter independently. This segmentation eliminates the need for synchronization when threads access their own counters, while still providing accurate aggregate statistics when summed together.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each thread serves itself by maintaining its own local counter without requiring access to shared data structures. The thread independently increments its local counter, eliminating the need for lock acquisition and releasing operations.

Inventive Principle:
Principle #25Self-service

2Loss of information

If intrusive methods are used to gather statistical data such as profiling execution, then statistical data can be obtained, but the outcome of the experiment is affected as the observation changes the performance of the application

Engineering Contradiction:
Improvestatistical dataVSAvoidapplication performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The application itself maintains the statistical counters as part of its normal execution flow, without requiring external profiling tools. The counters are incremented automatically as tasks are scheduled and completed, capturing accurate statistics without external observation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces local counters as an intermediary between the scheduling system and the statistical data collection. These counters act as a buffer that captures execution statistics without requiring direct observation or intervention from external profiling tools.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If approximations are used to make rough estimates about application execution, then data can be obtained without affecting performance, but the data may be crude or unusable

Engineering Contradiction:
Improvedata collection efficiencyVSAvoiddata accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system maintains precise counters as part of its normal operation, eliminating the need for approximations. Each thread accurately tracks its own task execution statistics, providing precise data without requiring external estimation techniques.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8843927B2Monitoring and updating tasks arrival and completion statistics without data locking synchronization
Publication Date: 2014.09.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8843927B2 patent drawing
  • US8843927B2 patent drawing
  • US8843927B2 patent drawing

AI summary

Each processing resource in a scheduler of a process executing on a computer system maintains counts of the number of tasks that arrive at the processing resource and the number of tasks that complete on the processing resource. The counts are maintained in storage that is only writeable by the corresponding processing resource. The scheduler collects and sums the counts from each processing resource and provides statistics based on the summed counts and previous summed counts to a resource manager in response to a request from the resource manager. The scheduler does not reset the counts when the counts are collected and stores copies of the summed counts for use with the next request from the resource manager. The counts may be maintained without synchronization and with thread safety to minimize the impact of gathering statistics on the application.