Dynamic Thread Workload Balancing for Data Processing Bottlenecks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data processing systems experience significant consumption of computing bandwidth and I/O throughput during data sorting operations due to resource-intensive serial processing, particularly when using higher performance storage which is costly and has lower storage capacity.
Innovation Solution
A method involving multiple threads to dynamically assign and adjust sub-processes, ensuring performance characteristics are equal across threads, allowing for parallel processing and efficient resource distribution, thereby reducing computational resource consumption and improving throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If higher performance storage is utilized to perform data sorting, then performance metrics are improved, but storage capacity is reduced due to higher cost
Solution Approach 1:
The data sorting process is divided into multiple independent sub-processes that can be executed in parallel across different threads. Each thread handles a specific subset of sorting operations, allowing the system to utilize higher performance storage for critical path operations while maintaining overall storage capacity through parallel processing of less time-sensitive sub-processes.
Solution Approach 2:
The system dynamically adjusts workload distribution among threads based on real-time performance characteristics. The managing thread monitors thread performance and dynamically reassigns sub-processes to balance load, allowing flexible utilization of higher performance storage resources while maintaining storage capacity efficiency.
2Loss of time
If data sorting is performed in a serial nature, then resource consumption is reduced, but processing time is lengthened
Solution Approach 1:
The sorting process is segmented into multiple sub-processes that can be executed concurrently in parallel threads. This segmentation enables the system to reduce processing time by overlapping I/O operations and computation across multiple threads, while the managing thread coordinates resource allocation to prevent excessive computing bandwidth consumption.
Solution Approach 2:
The system maintains continuous useful action by overlapping I/O processing with computation across multiple threads. While some threads perform computation, others handle I/O operations, ensuring that computing bandwidth is continuously utilized without idle periods, thereby reducing overall processing time without proportionally increasing total resource consumption.
3Productivity
If workload is statically assigned to threads, then system complexity is reduced, but performance efficiency is decreased due to unequal thread performance
Solution Approach 1:
The managing thread continuously monitors the performance characteristics of worker threads and uses this feedback to dynamically adjust workload distribution. When a thread falls behind or exceeds performance expectations, the system reassigns sub-processes to balance the load, ensuring optimal performance efficiency while maintaining manageable complexity through centralized coordination.
Solution Approach 2:
The workload assignment is made dynamic rather than static, allowing the system to adapt to changing performance conditions. The managing thread can reassign sub-processes in real-time based on observed thread performance, enabling the system to maintain high performance efficiency while the complexity of dynamic management is handled through structured workload coordination protocols.
Data Source
AI summary
A computer-implemented method, according to one embodiment, includes: receiving a data process that includes a plurality of sub-processes. A unique subset of the sub-processes is assigned to each of: a managing thread, and at least one other thread. Moreover, performance characteristics of each of the threads is evaluated while the respective subsets of sub-processes are being performed, and a determination is made as to whether the performance characteristics of each of the threads are substantially equal to the performance characteristics of each of the other threads. In response to determining that performance characteristics of each of the threads are not substantially equal, the subsets of the sub-processes are dynamically adjusted such that the performance characteristics of each of the threads become more equal. Moreover, the adjusted subsets of the sub-processes are reassigned to each of the managing thread and at least one other thread.


