Details
-
New Feature
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
MariaDB Server must adapt seamlessly to hardware resource changes (CPU, RAM) in dynamic environments like Kubernetes/Cloud, where allocations can shift online without server restarts. This story covers the development of automatic scaling mechanisms to optimize thread pool and buffer pool usage based on real-time hardware availability, reducing manual tuning and enhancing cloud-native performance.
Current State
- Thread Pool Dynamism: The thread pool adjusts active threads based on workload within thread_pool_min_threads and thread_pool_max_threads.
- Manual CPU Scaling: thread_pool_size can be changed via SET GLOBAL, but there’s no automatic adjustment for CPU changes.
- Buffer Pool Static Configuration: innodb_buffer_pool_size defaults to 128MB and requires manual tuning, despite recommendations of 75-80% of RAM.
- Kubernetes & Cloud Constraints: Containerized environments dynamically scale CPU and RAM, but MariaDB relies on manual intervention or scripts to optimize resource usage.
*Proposed Feature Set: Automatic CPU-Based, RAM-Based Auto-Scaling and Hill-Climbing (Enterprise).
Introduce configurable auto-scaling mechanisms to dynamically adjust the thread pool and buffer pool based on resource changes.
Attachments
Issue Links
- is blocked by
-
MDEV-36196 Thread Pool Auto-Scaling Based on CPU Count
-
- Open
-
-
MDEV-36197 Implement Buffer Pool Auto-Scaling Based on RAM Availability
-
- Open
-
- relates to
-
MDEV-19839 refactor --autoset
-
- Open
-
-
MDEV-19895 Support "autoset" in SET GLOBAL for AUTO_SET system variables
-
- Open
-
MDEV-19839 and MDEV-19895 are earlier attempts at capturing something similar.