diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-02-24 15:12:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-24 15:12:09 +0200 |
commit | 342b48b7b1cf9c5ed3db04d5b7abff335d6e3090 (patch) | |
tree | 2daabb1763bfde3fbd31913bf37058f5f6687c99 /storage | |
parent | 979e94d264f04a2de59012bc3897e9e3b16d94ad (diff) | |
parent | 473fb9295db547136bedcc6aae4bae4fcfb5c4f0 (diff) | |
download | mariadb-git-342b48b7b1cf9c5ed3db04d5b7abff335d6e3090.tar.gz |
Merge pull request #264 from grooverdan/10.2-MDEV-11454-innodb_buffer_pool_dump_pct-entire-pool
MDEV-11454: Make innodb_buffer_pool_dump_pct refer to the entire buffer pool size
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/buf/buf0dump.cc | 14 | ||||
-rw-r--r-- | storage/xtradb/buf/buf0dump.cc | 17 |
2 files changed, 27 insertions, 4 deletions
diff --git a/storage/innobase/buf/buf0dump.cc b/storage/innobase/buf/buf0dump.cc index 6100bf7aa93..9110345fa24 100644 --- a/storage/innobase/buf/buf0dump.cc +++ b/storage/innobase/buf/buf0dump.cc @@ -314,9 +314,21 @@ buf_dump( } if (srv_buf_pool_dump_pct != 100) { + ulint t_pages; + ut_ad(srv_buf_pool_dump_pct < 100); - n_pages = n_pages * srv_buf_pool_dump_pct / 100; + /* limit the number of total pages dumped to X% of the + * total number of pages */ + t_pages = buf_pool->curr_size + * srv_buf_pool_dump_pct / 100; + if (n_pages > t_pages) { + buf_dump_status(STATUS_INFO, + "Instance %d, restricted to %u pages " \ + "due to innodb_buf_pool_dump_pct (%d)", + i, t_pages, srv_buf_pool_dump_pct); + n_pages = t_pages; + } if (n_pages == 0) { n_pages = 1; diff --git a/storage/xtradb/buf/buf0dump.cc b/storage/xtradb/buf/buf0dump.cc index 6abf7375775..e6137760152 100644 --- a/storage/xtradb/buf/buf0dump.cc +++ b/storage/xtradb/buf/buf0dump.cc @@ -156,8 +156,7 @@ buf_load_status( fmt, ap); if (severity == STATUS_NOTICE || severity == STATUS_ERR) { - ut_print_timestamp(stderr); - fprintf(stderr, " InnoDB: %s\n", + ib_logf((ib_log_level_t) severity, "%s", export_vars.innodb_buffer_pool_load_status); } @@ -249,9 +248,21 @@ buf_dump( } if (srv_buf_pool_dump_pct != 100) { + ulint t_pages; + ut_ad(srv_buf_pool_dump_pct < 100); - n_pages = n_pages * srv_buf_pool_dump_pct / 100; + /* limit the number of total pages dumped to X% of the + * total number of pages */ + t_pages = buf_pool->curr_size + * srv_buf_pool_dump_pct / 100; + if (n_pages > t_pages) { + buf_dump_status(STATUS_INFO, + "Instance %d, restricted to %u pages " \ + "due to innodb_buf_pool_dump_pct (%d)", + i, t_pages, srv_buf_pool_dump_pct); + n_pages = t_pages; + } if (n_pages == 0) { n_pages = 1; |