3144 Sunny Bains 2011-06-02
Non-functional change. Fix ccomment.
modified:
storage/innobase/srv/srv0srv.c
3143 Sunny Bains 2011-06-02
Bug 11765863: SHUTDOWN HANG WAITING FOR PURGE THREAD TO BE SUSPENDED
This is really several bug fixes rolled into one:
1. Fix a hang during shutdown
2. Fix multi-threaded purge performance issue when innodb-purge-threads > 1.
3. Remove purge_sys->n_executing
4. Purge unable to keep up with data generation when number of user
threads >= 256.
Now that worker threads can't simply exit via os_event_wait() and their
termination is deterministic. Get rid of the dodgy code that tried to
handle the case of an unexpected exit. This gets rid of the
purge_sys->n_executing field altogether. Simplifies the control flow and
fixes a performance issue when innodb-purge-threads > 1 by removing some
arbitrary sleeps to handle the above case.
Treat the number of purge threads as a pool of threads, use only as many
threads as required to keep the history list in check.
Set innodb_purge_batch_size default to 300 from 20. Updated test results
accordingly.
rb://658 Approved by: Jimmy Yang.
modified:
mysql-test/suite/sys_vars/r/innodb_purge_batch_size_basic.result
storage/innobase/handler/ha_innodb.cc
storage/innobase/include/trx0purge.h
storage/innobase/srv/srv0srv.c
storage/innobase/trx/trx0purge.c
=== modified file 'storage/innobase/srv/srv0srv.c'
--- a/storage/innobase/srv/srv0srv.c revid:sunny.bains@stripped
+++ b/storage/innobase/srv/srv0srv.c revid:sunny.bains@stripped
@@ -2496,7 +2496,7 @@ srv_purge_coordinator_thread(
while (srv_shutdown_state != SRV_SHUTDOWN_EXIT_THREADS) {
- /* If there are very few records to purge or the last
+ /* If there are no records to purge or the last
purge didn't purge any records then wait for activity.
We peek at the history len without holding any mutex
because in the worst case we will end up waiting for
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (Sunny.Bains:3143 to 3144) | Sunny Bains | 2 Jun |