Policy-Based Task Selection for Distributed Worker Contention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing compute activities in distributed systems face inefficiencies due to contention between workers when processing tasks, particularly in optimistic concurrency control systems, where multiple workers may end up working on the same tasks, leading to resource inefficiency and increased update failures.
Innovation Solution
Implementing policy-based task selection techniques that determine the starting point for task processing in a task data structure, such as random, heat-map, or availability-based methods, to reduce contention by ensuring distinct workers process different tasks, thereby optimizing resource utilization and reducing update failures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If optimistic concurrency control is used to allow multiple concurrent entities to access records, then system performance improves due to reduced locking time, but update failures increase when multiple workers process the same tasks simultaneously
Solution Approach 1:
The task data structure is segmented into multiple partitions or regions, and workers are assigned to process tasks from different segments. This segmentation ensures that workers operate on distinct portions of the task queue, reducing the probability of concurrent access conflicts and update failures while maintaining high system throughput.
Solution Approach 2:
The system performs preliminary actions by pre-assigning tasks to workers before actual processing begins. Task assignments are made in advance based on worker availability and task characteristics, ensuring that workers have dedicated tasks to process without competing for the same resources, thereby reducing update failures.
2Ease of operation
If tasks are selected in a fixed manner from the task data structure, then task selection is simple and deterministic, but contention occurs when multiple workers select the same tasks
Solution Approach 1:
The task selection mechanism transitions from a static, fixed approach to a dynamic, adaptive approach. Workers can select tasks based on dynamic criteria such as task priority, worker capability, and current system state. This dynamic selection reduces contention by distributing tasks more evenly across workers while maintaining operational simplicity through standardized selection algorithms.
3Productivity
If multiple workers process batches of tasks concurrently, then system throughput increases, but resource inefficiency occurs when workers process overlapping tasks
Solution Approach 1:
The system implements feedback mechanisms where workers report task processing status and completion to a central coordinator. This feedback enables the system to track which tasks are being processed by which workers, allowing for intelligent task allocation that avoids assigning the same tasks to multiple workers simultaneously, thereby eliminating resource waste while maintaining high throughput.
Solution Approach 2:
The patent replaces traditional mechanical task allocation methods with an information-based system using tokens and data structures. Workers receive task batches through information exchange rather than direct resource allocation, enabling efficient coordination and reducing redundant processing without requiring complex inter-worker communication protocols.
Data Source
AI summary
A system implements task contention reduction via policy-based selection. Tasks waiting to be performed are indexed in a task data structure that groups the tasks based on the resources to which the tasks pertain. Workers request batches of tasks for the workers to perform. A scan cycle includes building multiple batches of tasks by scanning the task data structure for a requesting worker. A policy (e.g., random or some other form of optimization) determines where the scan cycle starts in the data structure. Each batch of tasks is delivered to a worker along with a token that keeps the state of the scan cycle (e.g., where the scan cycle started, and where the next scan to build the next batch within the scan cycle begins). The worker returns the token with the next request for the next batch and the next batch is built based on the token's state information.


