Dynamic Thread Priority Adjustment for P2P Data Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Thread priority assignment in high-speed data transmission systems between peer-to-peer devices often leads to inefficient resource allocation, as high-priority threads may occupy resources unnecessarily when idle, impacting throughput and workload balance.
Innovation Solution
A processor-based algorithm dynamically adjusts thread priority based on the number of pending packets to be transferred, increasing priority when data waiting to be sent increases and decreasing it when data waiting decreases, ensuring faster data transfer rates while balancing system workload.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a thread is assigned a higher priority to minimize wait time, then transmission throughput is improved, but system resources are preferentially occupied even when the thread is idle
Solution Approach 1:
The thread priority is made dynamic rather than fixed. The processor dynamically adjusts the priority of the data transfer thread based on the number of pending packets - increasing priority when packets are waiting to be transmitted, and decreasing priority when the thread is idle or no packets are pending. This dynamic adjustment resolves the contradiction by ensuring high priority is only assigned when needed for throughput, preventing unnecessary resource occupation during idle periods.
Solution Approach 2:
The system implements feedback by continuously monitoring the number of pending packets and using this information to adjust thread priority. The processor receives information about the current pending packet number and uses it to determine whether to increase or decrease the thread priority, creating a closed-loop control system that balances throughput and resource efficiency.
2Speed
If a thread is assigned a higher priority to reduce wait time, then data transfer rate is improved, but other tasks cannot be scheduled
Solution Approach 1:
The thread priority is dynamically adjusted based on the actual data transfer needs. When the number of pending packets is high, the priority is increased to ensure fast data transfer. When packets are transmitted or the thread is idle, the priority is reduced to allow other tasks to be scheduled. This dynamic behavior resolves the contradiction between speed and adaptability.
Solution Approach 2:
The system changes the priority parameter based on the number of pending packets. By monitoring packet queue length and adjusting the priority level accordingly, the system can achieve high data transfer rates when needed while maintaining scheduling flexibility for other tasks when data transfer is not urgent.
3Productivity
If the thread executes frequently to maintain minimum data transfer rate, then throughput is improved, but system workload increases
Solution Approach 1:
The thread execution frequency is dynamically controlled through priority adjustment. When the number of pending packets is high, the thread is assigned higher priority and executes more frequently to maintain throughput. When packets are transmitted or the queue is empty, the thread priority is reduced and execution frequency decreases, reducing unnecessary system workload while maintaining minimum throughput requirements.
Data Source
AI summary
In some implementations, a processor is configured to receive a current pending packet number representing a number of packets of data that currently remain to be transferred between two devices, determine whether to adjust a priority of a thread based on the current pending packet number, a previous pending packet number, and a priority pending packet number, and adjust or maintain the priority of the thread based on determining whether to adjust the priority of the thread. The thread is to be executed by the processor to perform a transfer of the packets of data between the two devices, the previous pending packet number represents a number of packets of data that previously remained to be transferred between the two devices, and the priority pending packet number corresponds to the current priority of the thread.


