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
Fix #1651657, failback from backup for legacy for small BP instance size - 5.7 #1263
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.
In addition to 5.6 comments, a 5.7-specific question: - what happens if we have "backoff" set with a large enough buffer pool and then resize it down so that it needs "legacy"?
c5a33ba
to
8103a23
Compare
http://jenkins.percona.com/view/5.7/job/mysql-5.7-param/738/
|
The added test is failing intermittently: innodb.percona_bug1651657 w3 [ fail ] CURRENT_TEST: innodb.percona_bug1651657
|
--source include/assert.inc | ||
|
||
call mtr.add_suppression("InnoDB: innodb_empty_free_list_algorithm = 'backoff' requires at least 20MB buffer pool instances."); | ||
--error 1231 |
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.
Please use ER_ mnemonics
bool | ||
innodb_empty_free_list_algorithm_allowed( | ||
srv_empty_free_list_t algorithm, | ||
ulint new_buf_pool_sz = 0) |
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.
long long arg? It's getting called from a "long long" MySQL variable validation function
@param[in] algorithm desired algorithm from srv_empty_free_list_t | ||
@param[in] new_buf_pool_sz requested buffer pool size | ||
@return true if it's possible to enable backoff. */ | ||
static inline |
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.
Just static
"because of small buffer pool size. " | ||
"In order to use backoff, " | ||
"increase buffer pool at least up to 20MB.\n"); | ||
srv_empty_free_list_algorithm |
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.
Indentation
16c79f5
to
a4f31d4
Compare
http://jenkins.percona.com/job/mysql-5.7-param/756/
I'm getting warnings with 19MB buffer pool instance (1026 buffer pool size, 54 instances) even with legacy flush algorithm:
http://jenkins.percona.com/job/mysql-5.7-param/756/BUILD_TYPE=debug,Host=centos6-32/consoleFull Thus for 5.7 it could be a good idea to limit buffer pool instance size at 20MB+ and remove backoff to legacy failback (current tests are executed with at least 128MB buffer pool instances if multiple buffer pool instances are enabled in 5.7). |
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.
Please restore the bp resize test, it is important and tests an affected code path. In order for the testcase to be lighter on our Jenkins, please reduce the instance count, it could be as small as 2.
Limitting minimum buffer pool size is not desirable as there are users running application tests with minimally-sized MySQL instances
buffer pool belongs to LRU or freelist. | ||
At the same time buf_flush_LRU_list_batch | ||
keeps up to BUF_LRU_MIN_LEN in LRU. | ||
In order to avoid deadlock baclkoff requires buffer pool |
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.
"backoff"
a4f31d4
to
5c636d3
Compare
http://jenkins.percona.com/job/mysql-5.7-param/764/
|
@@ -0,0 +1,13 @@ | |||
--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.
Please add --source include/big_test.inc
|
||
set @old_innodb_buffer_pool_size = @@innodb_buffer_pool_size; | ||
|
||
# Test buffer pool shink with backoff algorithm. |
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.
"shrink"
5c636d3
to
19bc3e4
Compare
http://jenkins.percona.com/view/5.7/job/mysql-5.7-param/767/
|
http://jenkins.percona.com/view/5.7/job/mysql-5.7-param/561/
https://bugs.launchpad.net/percona-server/+bug/1651657
#1262 PR 5.6
If buffer pool is bigger than 1GB and there are many buffer pool instances each instance could be smaller than 20MB and causing deadlocks with backoff algorithm.