Hierarchical Memory Allocation for Database Service Level Goals
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database systems face challenges in managing workloads to meet service level goals due to interlocking threads and resource sharing, especially in large-scale configurations, leading to high priority jobs starving for memory and failing to meet performance objectives, particularly in cloud environments with object storage.
Innovation Solution
Implementing a hierarchical inverted tree-based memory management system that allocates resources based on priority, allowing high priority tasks to have higher memory limits and temporarily adjusting lower priority tasks to ensure high priority jobs meet their goals, using Linux control groups to manage memory allocation dynamically.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If lower priority jobs are allowed to consume excessive memory, then more memory resources are utilized, but high priority jobs starve for memory and miss service level goals
Solution Approach 1:
The patent segments the memory management system into multiple priority levels (high priority and low priority job groups) with distinct memory limits. This segmentation allows independent control of memory allocation for each priority level, preventing low priority jobs from consuming memory needed by high priority jobs while still utilizing available memory resources.
Solution Approach 2:
The patent applies different memory management policies (different memory limits) to different job groups based on their priority. High priority job groups are assigned higher memory limits while low priority job groups are assigned lower memory limits, allowing each group to receive appropriate resources according to its specific needs and importance.
2Reliability
If memory limits are set for all job groups, then high priority jobs can meet service level goals, but low priority jobs may be restricted from using available memory resources
Solution Approach 1:
The patent implements dynamic memory management where memory limits for low priority job groups can be adjusted based on system conditions. When high priority jobs need memory, the system can reduce or temporarily set to zero the memory limits for low priority jobs. When high priority jobs are dormant, memory limits for low priority jobs can be increased to utilize available memory resources.
Solution Approach 2:
The system continuously monitors memory usage and service level goal achievement, and adjusts memory limits dynamically based on this feedback. The workload manager receives information about memory pressure and service level performance, then modifies memory allocation accordingly to maintain both service level goals and efficient resource utilization.
3Productivity
If threads are allowed to share resources and cooperate, then work efficiency improves, but threads may interlock themselves in the Deadly Embrace and stop making progress
Solution Approach 1:
The patent segments threads into different priority levels with hierarchical scheduling. High priority threads are scheduled independently from low priority threads, preventing deadlock situations where threads of different priorities block each other. This segmentation maintains cooperation within priority groups while preventing harmful interlocking between groups.
Solution Approach 2:
The patent introduces a workload manager as an intermediary that mediates resource allocation and scheduling between different priority groups. The workload manager controls memory allocation and thread scheduling, preventing direct resource contention that could lead to deadlock while still allowing efficient resource sharing within controlled parameters.
Data Source
AI summary
A memory management computer system arranges a set of consumers of a computer memory resource in an inverted tree hierarchy. The memory management computer system allocates the computer memory resource among the scheduling entities. Each of the scheduling entities allocates the computer memory resource among the consumers of the computer memory resource to which it is directly coupled in the hierarchy. One of the scheduling entities in the hierarchy, a modifying scheduling entity, determines that a change is required to the allocation of the computer memory resource to one of the consumers of the computer memory resource for which the modifying scheduling entity is responsible for allocating the computer memory resource. Modifying the allocation of the computer memory resource to the one of the consumers of the computer memory resource without changing the hierarchy or creating a new hierarchy.


