Skip to content
Permalink
Browse files

Merge branch 'merge-xtradb-5.6' into 10.0

  • Loading branch information...
cvicentiu committed Aug 2, 2017
2 parents 60c9485 + 04ae120 commit b278c02e18dbcb0e8920192fa5ac3da83e397826
Showing with 17 additions and 3 deletions.
  1. +14 −2 storage/xtradb/buf/buf0flu.cc
  2. +1 −1 storage/xtradb/include/univ.i
  3. +2 −0 storage/xtradb/log/log0log.cc
@@ -2781,7 +2781,10 @@ DECLARE_THREAD(buf_flush_page_cleaner_thread)(
when SRV_SHUTDOWN_CLEANUP is set other threads like the master
and the purge threads may be working as well. We start flushing
the buffer pool but can't be sure that no new pages are being
dirtied until we enter SRV_SHUTDOWN_FLUSH_PHASE phase. */
dirtied until we enter SRV_SHUTDOWN_FLUSH_PHASE phase. Because
the LRU manager thread is also flushing at SRV_SHUTDOWN_CLEANUP
but not SRV_SHUTDOWN_FLUSH_PHASE, we only leave the
SRV_SHUTDOWN_CLEANUP loop when the LRU manager quits. */

do {
n_flushed = page_cleaner_do_flush_batch(PCT_IO(100), LSN_MAX);
@@ -2790,7 +2793,10 @@ DECLARE_THREAD(buf_flush_page_cleaner_thread)(
if (n_flushed == 0) {
os_thread_sleep(100000);
}
} while (srv_shutdown_state == SRV_SHUTDOWN_CLEANUP);

os_rmb;
} while (srv_shutdown_state == SRV_SHUTDOWN_CLEANUP
|| buf_lru_manager_is_active);

/* At this point all threads including the master and the purge
thread must have been suspended. */
@@ -2807,6 +2813,11 @@ DECLARE_THREAD(buf_flush_page_cleaner_thread)(
buf_flush_wait_batch_end(NULL, BUF_FLUSH_LIST);
buf_flush_wait_LRU_batch_end();

#ifdef UNIV_DEBUG
os_rmb;
ut_ad(!buf_lru_manager_is_active);
#endif

bool success;

do {
@@ -2885,6 +2896,7 @@ DECLARE_THREAD(buf_flush_lru_manager_thread)(
}

buf_lru_manager_is_active = false;
os_wmb;

/* We count the number of threads in os_thread_exit(). A created
thread should always use that to exit and not use return() to exit. */
@@ -48,7 +48,7 @@ Created 1/20/1994 Heikki Tuuri
#define INNODB_VERSION_BUGFIX 36

#ifndef PERCONA_INNODB_VERSION
#define PERCONA_INNODB_VERSION 82.0
#define PERCONA_INNODB_VERSION 82.1
#endif

/* Enable UNIV_LOG_ARCHIVE in XtraDB */
@@ -3577,6 +3577,7 @@ logs_empty_and_mark_files_at_shutdown(void)
before proceeding further. */
srv_shutdown_state = SRV_SHUTDOWN_FLUSH_PHASE;
count = 0;
os_rmb;
while (buf_page_cleaner_is_active || buf_lru_manager_is_active) {
if (srv_print_verbose_log && count == 0) {
ib_logf(IB_LOG_LEVEL_INFO,
@@ -3588,6 +3589,7 @@ logs_empty_and_mark_files_at_shutdown(void)
if (count > 600) {
count = 0;
}
os_rmb;
}

mutex_enter(&log_sys->mutex);

0 comments on commit b278c02

Please sign in to comment.
You can’t perform that action at this time.