Skip to content

Commit 4834d82

Browse files
author
Jan Lindström
committed
MDEV-8932: innodb buffer pool hit rate is less than zero
In buffer pool read hit rate calculation can lead rate that is less than zero.
1 parent a9b5a8d commit 4834d82

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

storage/innobase/buf/buf0buf.cc

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5299,11 +5299,19 @@ buf_print_io_instance(
52995299
pool_info->pages_written_rate);
53005300

53015301
if (pool_info->n_page_get_delta) {
5302+
double hit_rate = ((1000 * pool_info->page_read_delta)
5303+
/ pool_info->n_page_get_delta);
5304+
5305+
if (hit_rate > 1000) {
5306+
hit_rate = 1000;
5307+
}
5308+
5309+
hit_rate = 1000 - hit_rate;
5310+
53025311
fprintf(file,
53035312
"Buffer pool hit rate %lu / 1000,"
53045313
" young-making rate %lu / 1000 not %lu / 1000\n",
5305-
(ulong) (1000 - (1000 * pool_info->page_read_delta
5306-
/ pool_info->n_page_get_delta)),
5314+
(ulong) hit_rate,
53075315
(ulong) (1000 * pool_info->young_making_delta
53085316
/ pool_info->n_page_get_delta),
53095317
(ulong) (1000 * pool_info->not_young_making_delta

storage/xtradb/buf/buf0buf.cc

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5524,11 +5524,19 @@ buf_print_io_instance(
55245524
pool_info->pages_written_rate);
55255525

55265526
if (pool_info->n_page_get_delta) {
5527+
double hit_rate = ((1000 * pool_info->page_read_delta)
5528+
/ pool_info->n_page_get_delta);
5529+
5530+
if (hit_rate > 1000) {
5531+
hit_rate = 1000;
5532+
}
5533+
5534+
hit_rate = 1000 - hit_rate;
5535+
55275536
fprintf(file,
55285537
"Buffer pool hit rate %lu / 1000,"
55295538
" young-making rate %lu / 1000 not %lu / 1000\n",
5530-
(ulong) (1000 - (1000 * pool_info->page_read_delta
5531-
/ pool_info->n_page_get_delta)),
5539+
(ulong) hit_rate,
55325540
(ulong) (1000 * pool_info->young_making_delta
55335541
/ pool_info->n_page_get_delta),
55345542
(ulong) (1000 * pool_info->not_young_making_delta

0 commit comments

Comments
 (0)