summaryrefslogtreecommitdiff
path: root/innobase/buf
diff options
context:
space:
mode:
authorheikki@donna.mysql.fi <>2001-11-17 13:48:39 +0200
committerheikki@donna.mysql.fi <>2001-11-17 13:48:39 +0200
commit086fe412948897b03832b288c84e4b0a49ce7820 (patch)
tree787da1602ab19957328ec16ef6c00f2594a8fc67 /innobase/buf
parent3ed8188bfbf3cc8cf652ec53bb1c486c531d16e8 (diff)
downloadmariadb-git-086fe412948897b03832b288c84e4b0a49ce7820.tar.gz
btr0cur.c, btr0btr.c, dict0dict.h, dict0dict.c:
Fix a bug in insert buffer B-tree upper levels; probably caused the crash by B.Fitzpatrick buf0flu.c: Fix a bug in previous change A small optimization for LRU flushes to avoid losing hot pages from the buffer pool
Diffstat (limited to 'innobase/buf')
-rw-r--r--innobase/buf/buf0flu.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/innobase/buf/buf0flu.c b/innobase/buf/buf0flu.c
index cfa814bcb05..8184f10d6e9 100644
--- a/innobase/buf/buf0flu.c
+++ b/innobase/buf/buf0flu.c
@@ -556,6 +556,15 @@ buf_flush_try_neighbors(
block = buf_page_hash_get(space, i);
+ if (block && flush_type == BUF_FLUSH_LRU && i != offset
+ && !block->old) {
+
+ /* We avoid flushing 'non-old' blocks in an LRU flush,
+ because the flushed blocks are soon freed */
+
+ continue;
+ }
+
if (block && buf_flush_ready_for_flush(block, flush_type)) {
mutex_exit(&(buf_pool->mutex));