Task Counting Without Data Locking Synchronization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


