Skip to content

Commit

Permalink
MDEV-8932: innodb buffer pool hit rate is less than zero
Browse files Browse the repository at this point in the history
In buffer pool read hit rate calculation can lead rate that is
less than zero.
  • Loading branch information
Jan Lindström committed Oct 28, 2015
1 parent a9b5a8d commit 4834d82
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
12 changes: 10 additions & 2 deletions storage/innobase/buf/buf0buf.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5299,11 +5299,19 @@ buf_print_io_instance(
pool_info->pages_written_rate);

if (pool_info->n_page_get_delta) {
double hit_rate = ((1000 * pool_info->page_read_delta)
/ pool_info->n_page_get_delta);

if (hit_rate > 1000) {
hit_rate = 1000;
}

hit_rate = 1000 - hit_rate;

fprintf(file,
"Buffer pool hit rate %lu / 1000,"
" young-making rate %lu / 1000 not %lu / 1000\n",
(ulong) (1000 - (1000 * pool_info->page_read_delta
/ pool_info->n_page_get_delta)),
(ulong) hit_rate,
(ulong) (1000 * pool_info->young_making_delta
/ pool_info->n_page_get_delta),
(ulong) (1000 * pool_info->not_young_making_delta
Expand Down
12 changes: 10 additions & 2 deletions storage/xtradb/buf/buf0buf.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5524,11 +5524,19 @@ buf_print_io_instance(
pool_info->pages_written_rate);

if (pool_info->n_page_get_delta) {
double hit_rate = ((1000 * pool_info->page_read_delta)
/ pool_info->n_page_get_delta);

if (hit_rate > 1000) {
hit_rate = 1000;
}

hit_rate = 1000 - hit_rate;

fprintf(file,
"Buffer pool hit rate %lu / 1000,"
" young-making rate %lu / 1000 not %lu / 1000\n",
(ulong) (1000 - (1000 * pool_info->page_read_delta
/ pool_info->n_page_get_delta)),
(ulong) hit_rate,
(ulong) (1000 * pool_info->young_making_delta
/ pool_info->n_page_get_delta),
(ulong) (1000 * pool_info->not_young_making_delta
Expand Down

0 comments on commit 4834d82

Please sign in to comment.