mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 02:30:06 +01:00
MDEV-23410 buf_LRU_scan_and_free_block() fails to stop at first freed block
An unfortunate performance regression was introduced in
commit b1ab211dee
(MDEV-15053)
that affects workloads where the working set is larger than
the buffer pool.
We used to terminate the loop in buf_LRU_scan_and_free_block()
when we succeeded to free a replaceable buffer pool block.
Due to the regression, we would keep freeing all replaceable
blocks until we reach the end of the list or encounter a block
that had never been accessed because it had been brought in
by read-ahead.
This commit is contained in:
parent
72f677d302
commit
e081415040
1 changed files with 2 additions and 1 deletions
|
@ -570,8 +570,9 @@ static bool buf_LRU_free_from_common_LRU_list(bool scan_all)
|
|||
ever being accessed. This gives us a measure of
|
||||
the effectiveness of readahead */
|
||||
++buf_pool.stat.n_ra_pages_evicted;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue