Database Priority Scheduler Hierarchical Resource Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database management systems face challenges in efficiently managing resources among diverse workloads with varying priorities, leading to suboptimal performance and resource allocation, especially in large databases with millions or billions of records.
Innovation Solution
The Teradata Priority Scheduler organizes database threads into task groups within a hierarchical structure, using the control group mechanism to allocate resources based on priority levels, allowing for flexible and effective management of resources across different workloads, with features like the 'Remaining' workload to ensure resource flow to lower tiers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If resources are allocated based on simple first-come-first-served or flat priority models, then implementation is simple, but resource allocation efficiency deteriorates when diverse workloads with varying priorities compete for resources
Solution Approach 1:
The patent segments the resource allocation system into multiple hierarchical levels: global resource pool, task groups, and individual tasks. Each level has its own resource pool and allocation rules, allowing complex multi-criteria priority scheduling to be broken down into manageable segments that can be implemented and controlled independently at each level.
Solution Approach 2:
The patent introduces a hierarchical dimension to resource allocation, transforming a flat single-level allocation system into a multi-level hierarchy. This adds vertical stratification (different priority levels) while maintaining horizontal allocation mechanisms at each level, enabling sophisticated priority management without overwhelming complexity at any single level.
2Reliability
If higher priority tasks are allocated more resources, then critical workloads get better performance, but lower priority tasks may starve and receive insufficient resources
Solution Approach 1:
The patent implements dynamic resource allocation where resource pools at each hierarchical level are not fixed but dynamically adjust based on demand and availability. When higher priority tasks consume resources, the system dynamically reallocates remaining resources to lower priority tasks, ensuring both critical workloads get guaranteed performance and lower priority tasks receive adequate resources when available.
Solution Approach 2:
The patent establishes resource pools and allocation rules in advance at each hierarchical level before workload competition begins. This preliminary configuration ensures that critical workloads have pre-allocated resource guarantees while lower priority tasks have access to residual resources, preventing starvation before it occurs.
3Adaptability or versatility
If a hierarchical task group structure is implemented, then resource allocation flexibility improves, but system complexity and management overhead increase
Solution Approach 1:
The patent implements a nested hierarchical structure where task groups contain tasks, and resource pools are nested at each level. This nested organization allows flexible resource allocation by enabling resource management at multiple granularities simultaneously, while the nested nature provides a natural framework for inheritance and default rules that reduces management overhead.
Solution Approach 2:
The patent creates a universal hierarchical framework that can accommodate diverse workload types and priority schemes through a common structure. The same hierarchical mechanism serves multiple functions: resource allocation, priority management, workload isolation, and performance guarantee, reducing the need for separate management systems for each function.
Data Source
AI summary
A computer running a database system receives one or more queries, each query comprised of parallel threads of execution working towards the common goal of completing a user request. These threads are grouped into a schedulable object called a task group. The task groups are placed within a specific multiple tier hierarchy, and database system resources allocated to the task groups according to their placement within the hierarchy. Beginning with the top tier of the hierarchy, resources remaining after allocations to each task group within a tier are passed to the next lower tier for allocation.


