[MDEV-16339] Upgrading to 10.1.32 shows innodb_empty_free_list_algorithm=BACKOFF as default when it should be 'LEGACY' Created: 2018-05-30 Updated: 2022-11-10 Resolved: 2022-11-09 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Configuration, Documentation, Server, Storage Engine - XtraDB |
| Affects Version/s: | 10.1.32 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Joseph Oreste (Inactive) | Assignee: | Sergei Golubchik |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | innodb | ||
| Environment: |
Development |
||
| Issue Links: |
|
||||||||||||||||
| Description |
|
Upgrading from 10.0 to 10.1.32 the default value for innodb_empty_free_list_algorithm is set to BACKOFF when documentation shows >=10.1.24 it should default to LEGACY. May be contributing to error log entries |
| Comments |
| Comment by Joseph Oreste (Inactive) [ 2018-05-30 ] | ||||||||||||||||
|
| ||||||||||||||||
| Comment by Joseph Oreste (Inactive) [ 2018-05-30 ] | ||||||||||||||||
|
I just did a new install of 10.1.32 and innodb_empty_free_list_algorithm defaults to LEGACY. This appears to be an issue with upgrading only. | ||||||||||||||||
| Comment by Elena Stepanova [ 2018-05-30 ] | ||||||||||||||||
|
As serg found out, XtraDB modifies the value without telling the server, and it does so conditionally. So, for big buffer pools it's still BACKOFF, while for small ones it's LEGACY, and we have a discrepancy in SYSTEM_VARIABLES:
(Global value originated from compile-time is LEGACY, while default value is BACKOFF). | ||||||||||||||||
| Comment by Joseph Oreste (Inactive) [ 2018-05-30 ] | ||||||||||||||||
|
Below is the query result of an upgraded 10.1.32 database with the default setting for innodb_empty_free_list_algorithm MariaDB [(none)]> select * from information_schema.system_variables where variable_name = 'innodb_empty_free_list_algorithm'\G VARIABLE_NAME: INNODB_EMPTY_FREE_LIST_ALGORITHM | ||||||||||||||||
| Comment by Joseph Oreste (Inactive) [ 2018-05-30 ] | ||||||||||||||||
|
As Sergei Golubchik found out, XtraDB modifies the value without telling the server, and it does so conditionally. So, for big buffer pools it's still BACKOFF, while for small ones it's LEGACY, and we have a discrepancy in SYSTEM_VARIABLES: At what size of a buffer pool will it choose LEGACY? | ||||||||||||||||
| Comment by Joseph Oreste (Inactive) [ 2018-06-22 ] | ||||||||||||||||
|
When we manually set innodb_empty_free_list_algorithm=LEGACY we no longer get the '[Warning] InnoDB: Difficult to find free blocks in the buffer' in the mysql error log. We changed the parameter to LEGACY on more than 10 databases and the warning went away. Can you explain the cause of this warning, its significance and how to make it go away? | ||||||||||||||||
| Comment by Marko Mäkelä [ 2018-07-02 ] | ||||||||||||||||
|
For the record, a message was changed in
| ||||||||||||||||
| Comment by Marko Mäkelä [ 2020-02-28 ] | ||||||||||||||||
|
The XtraDB parameter innodb_empty_free_list_algorithm=BACKOFF looks like it would cause buf_LRU_get_free_block() to sleep, relying on page cleaners to free up more blocks, and emitting the message if it fails to find free blocks due to that modification. XtraDB is not supported by MariaDB 10.2 or later, and the parameter never existed in InnoDB. The default value of the parameter is BACKOFF since its introduction in MariaDB Server 10.0.10. Given that MariaDB 10.0 has already reached and 10.1 will soon be at its end of life, I am reluctant to change the default value of this parameter. Note: Before | ||||||||||||||||
| Comment by Marko Mäkelä [ 2022-11-09 ] | ||||||||||||||||
|
MariaDB Server 10.1 reached its end of life in October 2020. The last release was 10.1.48. |