Details
-
New Feature
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
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
- Implement periodic RAM detection (e.g., via syscalls or OS notifications).
Add system variables: - buffer_pool_auto_scale_method=
{OFF, RAM_percentage}
(default: OFF).
- buffer_pool_auto_scale_factor=N (default: 0.75, range: 0.1–1.0).
- buffer_pool_min_size (default: 128MB), buffer_pool_max_size (default: unlimited).
- Set innodb_buffer_pool_size = RAM * buffer_pool_auto_scale_factor, respecting limits.
- Reject manual SET GLOBAL innodb_buffer_pool_size when auto-scaling is active.
- Make polling frequency configurable (e.g., once per second, per minute), defaulting to once per minute.
Acceptance Criteria
- buffer_pool_auto_scale_method=RAM_percentage activates RAM-based scaling.
- Example: 16GB RAM, buffer_pool_auto_scale_factor=0.75, innodb_buffer_pool_size=12GB.
- buffer_pool_auto_scale_factor configurable between 0.1–1.0.
- Respects buffer_pool_min_size and buffer_pool_max_size.
- Manual SET GLOBAL innodb_buffer_pool_size fails with an error.
- Ensure the system variables are manually configurable.
Attachments
Issue Links
- blocks
-
MDEV-36194 Automatic Scaling for Dynamic Environments
-
- Open
-
- is blocked by
-
MDEV-29445 reorganise innodb buffer pool (and remove buffer pool chunks)
-
- Closed
-
-
MDEV-34863 RAM Usage Changed Significantly Between 10.11 Releases
-
- Closed
-
- relates to
-
MDEV-24670 avoid OOM by linux kernel co-operative memory management
-
- Closed
-