diff options
author | heikki@hundin.mysql.fi <> | 2002-08-06 22:59:13 +0300 |
---|---|---|
committer | heikki@hundin.mysql.fi <> | 2002-08-06 22:59:13 +0300 |
commit | 042facc475a7a1d7610aba66526965e5b5ec5261 (patch) | |
tree | 0ed7a5d28436450a6e79787357c337dfae761d1d /innobase/buf | |
parent | 5fadf19295e31a0332de4f1ed3362ba1ce51e4ab (diff) | |
download | mariadb-git-042facc475a7a1d7610aba66526965e5b5ec5261.tar.gz |
Many files:
Merge InnoDB-3.23.52d
Diffstat (limited to 'innobase/buf')
-rw-r--r-- | innobase/buf/buf0buf.c | 18 | ||||
-rw-r--r-- | innobase/buf/buf0lru.c | 7 |
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 |