Dynamic Task Prioritization for In-Memory Database CPU Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional resource management systems in in-memory database management systems (IMDBMS) face challenges in guaranteeing timely execution of transactional queries when analytical queries are executed, leading to CPU time bottlenecks and unfair CPU time distribution among query classes, which is not suitable for time-critical transactional queries.
Innovation Solution
A method using a priority queue to manage tasks, where each task is assigned a priority based on its class, ensuring fast execution of time-critical queries and fair CPU time distribution by adjusting priorities dynamically to approximate target CPU time fractions, without incurring high overhead through thread multiplexing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional resource management systems schedule queries strictly in first-in-first-out manner, then queries are executed in arrival order, but time-critical transactional queries cannot be executed timely when analytical queries are simultaneously executed
Solution Approach 1:
The patent implements dynamic task prioritization where the priority of tasks is not fixed but changes based on system state. The resource management system continuously adjusts task priorities in the queue based on factors such as task type (transactional vs. analytical), current system load, and service level agreements. This allows time-critical transactional queries to be dynamically elevated in priority when analytical queries are executing, ensuring timely execution while maintaining FIFO as a baseline.
Solution Approach 2:
The system changes the scheduling parameter from static FIFO ordering to dynamic priority-based ordering. By introducing priority levels and adjusting them based on task characteristics and system conditions, the resource management system can differentiate between time-critical transactional queries and less time-sensitive analytical queries, allocating CPU time accordingly without requiring complex thread multiplexing.
2Productivity
If complex analytical queries are executed simultaneously with transactional queries on the same database instance, then analytical query execution speed is improved, but CPU time access for transactional queries is blocked
Solution Approach 1:
The patent applies partial action by allowing analytical queries to consume CPU time resources partially and temporarily without completely blocking transactional queries. The resource management system allocates CPU time in a controlled manner, permitting analytical queries to execute at high speed while reserving portions of CPU capacity for transactional queries through priority-based scheduling. This ensures analytical queries benefit from parallelism while transactional queries retain access to necessary CPU resources.
3Ease of operation
If conventional resource management systems do not enforce fair fraction scheduling, then query execution is simple, but CPU time distribution among query classes is unfair
Solution Approach 1:
The patent implements feedback mechanisms where the resource management system continuously monitors CPU time consumption by different query classes and adjusts task priorities accordingly. The system tracks the fraction of CPU time allocated to each query class and compares it against target fractions defined by service level agreements. When deviations are detected, the system dynamically adjusts priorities to restore fair distribution, maintaining both simplicity and fairness through automated feedback-driven control.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention provides methods and system, including computer program products, implementing and using techniques for providing tasks of different classes with access to CPU time provided by worker threads of a database system. In particular, the invention relates to such a database-system-implemented method comprising the following steps: inserting the tasks to a queue of the database system; and executing the tasks inserted to the queue by worker threads of the database system according to their order in the queue; characterized in that the queue is a priority queue; and in that the method further comprises the following steps: assigning each class to a respective priority; and in that the step of inserting the tasks to the queue includes: associating each task with the respective priority assigned to its class.