Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-36194

Automatic Scaling for Dynamic Environments

Details

    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

      1. Thread Pool Dynamism: The thread pool adjusts active threads based on workload within thread_pool_min_threads and thread_pool_max_threads.
      2. Manual CPU Scaling: thread_pool_size can be changed via SET GLOBAL, but there’s no automatic adjustment for CPU changes.
      3. Buffer Pool Static Configuration: innodb_buffer_pool_size defaults to 128MB and requires manual tuning, despite recommendations of 75-80% of RAM.
      4. 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

          Activity

            No workflow transitions have been executed yet.

            People

              wlad Vladislav Vaintroub
              adamluciano Adam Luciano
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.