Commit 7f44419d authored by heikki@donna.mysql.fi's avatar heikki@donna.mysql.fi

log0recv.c:

  Print progress info of the applying log records to the database phase in recovery
srv0srv.c:
  Do buffer pool flush and checkpoints more often to make recovery faster
parent 954920c8
...@@ -1019,7 +1019,8 @@ recv_apply_hashed_log_recs( ...@@ -1019,7 +1019,8 @@ recv_apply_hashed_log_recs(
if (recv_addr->state == RECV_NOT_PROCESSED) { if (recv_addr->state == RECV_NOT_PROCESSED) {
if (!has_printed) { if (!has_printed) {
fprintf(stderr, fprintf(stderr,
"InnoDB: Starting an apply batch of log records to the database...\n"); "InnoDB: Starting an apply batch of log records to the database...\n"
"InnoDB: Progress in percents:");
has_printed = TRUE; has_printed = TRUE;
} }
...@@ -1046,6 +1047,16 @@ recv_apply_hashed_log_recs( ...@@ -1046,6 +1047,16 @@ recv_apply_hashed_log_recs(
recv_addr = HASH_GET_NEXT(addr_hash, recv_addr); recv_addr = HASH_GET_NEXT(addr_hash, recv_addr);
} }
if (has_printed
&& (i * 100) / hash_get_n_cells(recv_sys->addr_hash)
!= ((i + 1) * 100)
/ hash_get_n_cells(recv_sys->addr_hash)) {
fprintf(stderr, "%lu ",
(i * 100) / hash_get_n_cells(recv_sys->addr_hash));
}
} }
/* Wait until all the pages have been processed */ /* Wait until all the pages have been processed */
...@@ -1059,6 +1070,11 @@ recv_apply_hashed_log_recs( ...@@ -1059,6 +1070,11 @@ recv_apply_hashed_log_recs(
mutex_enter(&(recv_sys->mutex)); mutex_enter(&(recv_sys->mutex));
} }
if (has_printed) {
fprintf(stderr, "\n");
}
if (!allow_ibuf) { if (!allow_ibuf) {
/* Flush all the file pages to disk and invalidate them in /* Flush all the file pages to disk and invalidate them in
the buffer pool */ the buffer pool */
......
...@@ -2417,7 +2417,19 @@ srv_master_thread( ...@@ -2417,7 +2417,19 @@ srv_master_thread(
background_loop: background_loop:
/* In this loop we run background operations when the server /* In this loop we run background operations when the server
is quiet */ is quiet and we also come here about once in 10 seconds */
srv_main_thread_op_info = "flushing buffer pool pages";
/* Flush a few oldest pages to make the checkpoint younger */
n_pages_flushed = buf_flush_batch(BUF_FLUSH_LIST, 10, ut_dulint_max);
srv_main_thread_op_info = "making checkpoint";
/* Make a new checkpoint about once in 10 seconds */
log_checkpoint(TRUE, FALSE);
srv_main_thread_op_info = "reserving kernel mutex"; srv_main_thread_op_info = "reserving kernel mutex";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment