summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <serg@sergbook.mysql.com>2003-04-25 15:45:45 +0400
committerunknown <serg@sergbook.mysql.com>2003-04-25 15:45:45 +0400
commit3ca538886a576e958c0871f3aa35dc3ec890640d (patch)
treefe4ee4f93994904299b5ad255935ec050a53d5b3 /innobase
parent1a4a359e2bcd84524b8e3126b660e59ce931c56c (diff)
parentc1ae7593b822aef6d2a267e520d2d0d469287294 (diff)
downloadmariadb-git-3ca538886a576e958c0871f3aa35dc3ec890640d.tar.gz
Merge bk-internal:/home/bk/mysql-4.0
into sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.0
Diffstat (limited to 'innobase')
-rw-r--r--innobase/srv/srv0srv.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
index ccb3755b252..d90b818ad4b 100644
--- a/innobase/srv/srv0srv.c
+++ b/innobase/srv/srv0srv.c
@@ -2780,9 +2780,6 @@ loop:
mutex_exit(&kernel_mutex);
- /* We run purge and a batch of ibuf_contract every 10 seconds, even
- if the server were active: */
-
for (i = 0; i < 10; i++) {
n_ios_old = log_sys->n_log_ios + buf_pool->n_pages_read
+ buf_pool->n_pages_written;
@@ -2805,6 +2802,11 @@ loop:
goto suspend_thread;
}
+ if (srv_fast_shutdown && srv_shutdown_state > 0) {
+
+ goto background_loop;
+ }
+
/* We flush the log once in a second even if no commit
is issued or the we have specified in my.cnf no flush
at transaction commit */
@@ -2832,11 +2834,6 @@ loop:
log_flush_up_to(ut_dulint_max, LOG_WAIT_ONE_GROUP);
log_flush_to_disk();
}
-
- if (srv_fast_shutdown && srv_shutdown_state > 0) {
-
- goto background_loop;
- }
if (srv_activity_count == old_activity_count) {
@@ -2867,7 +2864,7 @@ loop:
if (n_pend_ios < 3 && (n_ios - n_ios_very_old < 200)) {
srv_main_thread_op_info = (char*) "flushing buffer pool pages";
- buf_flush_batch(BUF_FLUSH_LIST, 50, ut_dulint_max);
+ buf_flush_batch(BUF_FLUSH_LIST, 100, ut_dulint_max);
srv_main_thread_op_info = (char*) "flushing log";
log_flush_up_to(ut_dulint_max, LOG_WAIT_ONE_GROUP);
@@ -2926,7 +2923,13 @@ background_loop:
/* Flush a few oldest pages to make the checkpoint younger */
- n_pages_flushed = buf_flush_batch(BUF_FLUSH_LIST, 10, ut_dulint_max);
+ if (srv_fast_shutdown && srv_shutdown_state > 0) {
+ n_pages_flushed = buf_flush_batch(BUF_FLUSH_LIST, 100,
+ ut_dulint_max);
+ } else {
+ n_pages_flushed = buf_flush_batch(BUF_FLUSH_LIST, 10,
+ ut_dulint_max);
+ }
srv_main_thread_op_info = (char*)"making checkpoint";
@@ -2993,7 +2996,8 @@ background_loop:
}
mutex_exit(&kernel_mutex);
- srv_main_thread_op_info = (char*) "waiting for buffer pool flush to end";
+ srv_main_thread_op_info =
+ (char*) "waiting for buffer pool flush to end";
buf_flush_wait_batch_end(BUF_FLUSH_LIST);
srv_main_thread_op_info = (char*)"making checkpoint";