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

Implement Buffer Pool Auto-Scaling Based on RAM Availability

Details

    Description

      Description
      Enable the buffer pool to adjust innodb_buffer_pool_size based on available RAM, targeting 75-80% by default, with configurable scaling factors and limits for stability. See https://jira.mariadb.org/browse/MDEV-36194 for more information on use case.

      Tasks

      1. Implement periodic RAM detection (e.g., via syscalls or OS notifications).
        Add system variables:
      2. buffer_pool_auto_scale_method= {OFF, RAM_percentage}

        (default: OFF).

      3. buffer_pool_auto_scale_factor=N (default: 0.75, range: 0.1–1.0).
      4. buffer_pool_min_size (default: 128MB), buffer_pool_max_size (default: unlimited).
      5. Set innodb_buffer_pool_size = RAM * buffer_pool_auto_scale_factor, respecting limits.
      6. Reject manual SET GLOBAL innodb_buffer_pool_size when auto-scaling is active.
      7. Make polling frequency configurable (e.g., once per second, per minute), defaulting to once per minute.

      Acceptance Criteria

      1. buffer_pool_auto_scale_method=RAM_percentage activates RAM-based scaling.
      2. Example: 16GB RAM, buffer_pool_auto_scale_factor=0.75, innodb_buffer_pool_size=12GB.
      3. buffer_pool_auto_scale_factor configurable between 0.1–1.0.
      4. Respects buffer_pool_min_size and buffer_pool_max_size.
      5. Manual SET GLOBAL innodb_buffer_pool_size fails with an error.
      6. Ensure the system variables are manually configurable.

      Attachments

        Issue Links

          Activity

            No workflow transitions have been executed yet.

            People

              marko Marko Mäkelä
              adamluciano Adam Luciano
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.