Job Processing Contention Reduction via Stream Prioritization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data processing systems face inefficiencies due to the need to repeatedly swap ancillary data between local and external storage, leading to increased processing time and memory congestion, as they handle multiple data streams with limited memory capacity.
Innovation Solution
A method and system for optimizing job processing by determining an ordered list of candidate jobs within a data processor, prioritizing jobs to reuse readily-accessible context data and minimize contention for shared resources, thereby reducing the frequency of external memory access and optimizing resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If ancillary data is stored in low-latency local storage devices, then processing time is reduced, but memory capacity is limited requiring repeated swaps to external storage
Solution Approach 1:
The system proactively loads ancillary data into local storage before it is needed for processing. The load manager monitors job queues and anticipates which ancillary data will be required, loading it into local storage in advance. This prevents data from being unavailable when needed, reducing processing delays while managing limited local storage capacity efficiently.
Solution Approach 2:
The system dynamically adjusts the allocation and size of local storage allocated to different data streams based on their activity patterns and priority. The load manager can reallocate local storage space between streams as needs change, allowing hot streams to use more local cache while cold streams use less, optimizing the trade-off between processing speed and storage capacity utilization.
2Quantity of substance
If ancillary data is repeatedly swapped between local and external storage, then memory capacity constraints are managed, but memory bus congestion increases
Solution Approach 1:
The load manager loads ancillary data into local storage before processing jobs that require it, rather than waiting for the data to be requested. This proactive loading smooths out memory access patterns by performing transfers during periods of lower system activity, reducing peak memory bus utilization and preventing congestion during critical processing periods.
Solution Approach 2:
The load manager acts as an intermediary layer between external storage and the processing system. It manages the buffering and transfer of ancillary data, absorbing the variability in access patterns and preventing direct, frequent access to external storage. This intermediary role allows the system to batch memory operations and reduce overall memory bus traffic.
3Productivity
If multiple data streams are processed simultaneously, then system throughput is increased, but contention for shared resources increases
Solution Approach 1:
The system dynamically changes the priority parameters of different data streams based on their current state and resource availability. The load manager can adjust stream priorities in real-time, allowing critical streams to preempt less urgent ones when resources are contended. This dynamic parameter adjustment enables the system to maintain high throughput while managing resource contention through priority-based scheduling rather than complex arbitration.
Data Source
AI summary
A method of processing a job is presented. A packet selector determines a candidate job list including an ordered listing of candidate jobs. Each candidate job in the ordered listing belongs to a communication stream. One or more shared resources required for execution of a first job in the candidate job list are identified. Whether the first job is eligible for execution is determined by determining an availability of the one or more shared resources required for the first job, and, when the one or more shared resource required for the first job are unavailable and no jobs executing within the data processor are from the same communication stream as the first job, determining that the first job is not eligible for execution.


