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

            MDEV-19839 and MDEV-19895 are earlier attempts at capturing something similar.

            marko Marko Mäkelä added a comment - MDEV-19839 and MDEV-19895 are earlier attempts at capturing something similar.

            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.