-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MDEV-34169 Don't allow innodb_open_files to be lesser than number of non-user tablespace #3255
base: 10.5
Are you sure you want to change the base?
Conversation
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you provide a test script that shows what would happen when this fix is not present? The current test case does not even check that this warning is actually being issued.
44956b3
to
57e8a42
Compare
number of non-user tablespace. - InnoDB only closes the user tablespace when the number of open files exceeds innodb_open_files limit. In that case, InnoDB should make sure that innodb_open_files value should be greater than number of undo tablespace, system and temporary tablespace.
57e8a42
to
b54506b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, this looks OK.
One more thing that occurred to me is that we could easily extend the test with a multi-file innodb_temp_data_file_path
to demonstrate if the lower limit of innodb_open_files
needs to take multi-file system&temporary tablespaces into account.
@@ -0,0 +1,9 @@ | |||
--source include/have_innodb.inc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to be missing
--source include/not_embedded.inc
"InnoDB: innodb_open_files %ld should be " | ||
"greater than total number of undo tablespace, " | ||
"system & temporary tablespace. So changing " | ||
"the value of innodb_open_files to %ld", | ||
innobase_open_files, srv_undo_tablespaces + 3); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’d suggest to use some more =
in the message so that it becomes easier to understand for non-native English speakers:
InnoDB: innodb_open_files=%ld is smaller than 3+innodb_undo_tablespaces=%ld; adjusting to innodb_open_files=%ld
The message does not necessarily need to explain what the 3 is coming from.
By the way, should this take into account system or temporary tablespaces that consist of multiple files? Can you cover that this in the test case?
Description
How can this PR be tested?
./mtr innodb.open_files_limit
Basing the PR against the correct MariaDB version
PR quality check