summaryrefslogtreecommitdiff
path: root/innobase/buf
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2002-08-06 22:59:13 +0300
committerheikki@hundin.mysql.fi <>2002-08-06 22:59:13 +0300
commit042facc475a7a1d7610aba66526965e5b5ec5261 (patch)
tree0ed7a5d28436450a6e79787357c337dfae761d1d /innobase/buf
parent5fadf19295e31a0332de4f1ed3362ba1ce51e4ab (diff)
downloadmariadb-git-042facc475a7a1d7610aba66526965e5b5ec5261.tar.gz
Many files:
Merge InnoDB-3.23.52d
Diffstat (limited to 'innobase/buf')
-rw-r--r--innobase/buf/buf0buf.c18
-rw-r--r--innobase/buf/buf0lru.c7
2 files changed, 20 insertions, 5 deletions
diff --git a/innobase/buf/buf0buf.c b/innobase/buf/buf0buf.c
index a447f9692a7..ee8e8b91f8d 100644
--- a/innobase/buf/buf0buf.c
+++ b/innobase/buf/buf0buf.c
@@ -1844,8 +1844,8 @@ buf_print_io(
buf_pool->n_flush[BUF_FLUSH_SINGLE_PAGE]);
current_time = time(NULL);
- time_elapsed = difftime(current_time, buf_pool->last_printout_time);
-
+ time_elapsed = 0.001 + difftime(current_time,
+ buf_pool->last_printout_time);
buf_pool->last_printout_time = current_time;
buf += sprintf(buf, "Pages read %lu, created %lu, written %lu\n",
@@ -1878,6 +1878,20 @@ buf_print_io(
mutex_exit(&(buf_pool->mutex));
}
+/**************************************************************************
+Refreshes the statistics used to print per-second averages. */
+
+void
+buf_refresh_io_stats(void)
+/*======================*/
+{
+ buf_pool->last_printout_time = time(NULL);
+ buf_pool->n_page_gets_old = buf_pool->n_page_gets;
+ buf_pool->n_pages_read_old = buf_pool->n_pages_read;
+ buf_pool->n_pages_created_old = buf_pool->n_pages_created;
+ buf_pool->n_pages_written_old = buf_pool->n_pages_written;
+}
+
/*************************************************************************
Checks that all file pages in the buffer are in a replaceable state. */
diff --git a/innobase/buf/buf0lru.c b/innobase/buf/buf0lru.c
index ffdc58f2224..bd69dff740c 100644
--- a/innobase/buf/buf0lru.c
+++ b/innobase/buf/buf0lru.c
@@ -27,6 +27,7 @@ Created 11/5/1995 Heikki Tuuri
#include "buf0rea.h"
#include "btr0sea.h"
#include "os0file.h"
+#include "log0recv.h"
/* The number of blocks from the LRU_old pointer onward, including the block
pointed to, must be 3/8 of the whole LRU list length, except that the
@@ -204,7 +205,7 @@ buf_LRU_get_free_block(void)
loop:
mutex_enter(&(buf_pool->mutex));
- if (UT_LIST_GET_LEN(buf_pool->free)
+ if (!recv_recovery_on && UT_LIST_GET_LEN(buf_pool->free)
+ UT_LIST_GET_LEN(buf_pool->LRU) < buf_pool->max_size / 10) {
ut_print_timestamp(stderr);
@@ -216,7 +217,7 @@ loop:
ut_a(0);
- } else if (UT_LIST_GET_LEN(buf_pool->free)
+ } else if (!recv_recovery_on && UT_LIST_GET_LEN(buf_pool->free)
+ UT_LIST_GET_LEN(buf_pool->LRU) < buf_pool->max_size / 5) {
/* Over 80 % of the buffer pool is occupied by lock heaps
@@ -232,7 +233,7 @@ loop:
srv_print_innodb_monitor = TRUE;
- } else if (UT_LIST_GET_LEN(buf_pool->free)
+ } else if (!recv_recovery_on && UT_LIST_GET_LEN(buf_pool->free)
+ UT_LIST_GET_LEN(buf_pool->LRU) < buf_pool->max_size / 4) {
/* Switch off the InnoDB Monitor; this is a simple way