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

            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.