From: Andrei Elkin Date: April 6 2011 12:54pm Subject: bzr push into mysql-next-mr-wl5569 branch (andrei.elkin:3273 to 3275) WL#5569 List-Archive: http://lists.mysql.com/commits/134866 Message-Id: <201104061254.p36CsUqg022714@mysql1000.dsl.inet.fi> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0493092144==" --===============0493092144== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 3275 Andrei Elkin 2011-04-06 wl#5569 MTS Statistics for Workers and Coordinator incl waiting times, sleeping is reported now into the error log as slave stopping time. @ sql/log_event.cc statistics addded. @ sql/rpl_rli.h statistics added. @ sql/rpl_slave.cc print-out mts statistics into the error log at stopping the slave. modified: mysql-test/extra/rpl_tests/rpl_parallel_load.test mysql-test/suite/rpl/r/rpl_sequential.result sql/log_event.cc sql/rpl_rli.cc sql/rpl_rli.h sql/rpl_slave.cc 3274 Andrei Elkin 2011-04-05 wl#5569 MTS restoring previous 4 default workers that rpl_parallel works with. modified: mysql-test/extra/rpl_tests/rpl_parallel_load.test mysql-test/suite/rpl/r/rpl_parallel.result mysql-test/suite/rpl/t/rpl_parallel-slave.opt 3273 Andrei Elkin 2011-04-03 wl#5569 MTS Benchmarking related patch uniforms rpl_parallel to be run with arbitrary number of workers, db:s, tables, etc. TODO: to restore the final constinency check which is given out temporary while i could not find a way to leave it surrounded with a --dis/en-able* stanza. @ mysql-test/extra/rpl_tests/rpl_parallel_load.test making the load generator to be indifferent to all parameters incl the number of db:s. Have to comment out the final consistency check sinc could not find a way to hide the verified table(s) line out of the results. @ mysql-test/suite/rpl/r/rpl_parallel.result results got updated. @ mysql-test/suite/rpl/r/rpl_sequential.result results got updated. @ mysql-test/suite/rpl/t/rpl_parallel-slave.opt the test caller has to supply -mysqld=--mts-slave-parallel-workers=[:num:]. With :num: == 0 the test is equivalent to rpl_sequential. @ mysql-test/suite/rpl/t/rpl_parallel.test removed traces of the number of workers that can vary in [0 - ..] range. The test caller has to supply -mysqld=--mts-slave-parallel-workers=[:num:]. With :num: == 0 the test is equivalent to rpl_sequential. modified: mysql-test/extra/rpl_tests/rpl_parallel_load.test mysql-test/suite/rpl/r/rpl_parallel.result mysql-test/suite/rpl/r/rpl_sequential.result mysql-test/suite/rpl/t/rpl_parallel-slave.opt mysql-test/suite/rpl/t/rpl_parallel.test === modified file 'mysql-test/extra/rpl_tests/rpl_parallel_load.test' --- a/mysql-test/extra/rpl_tests/rpl_parallel_load.test 2011-04-03 10:07:30 +0000 +++ b/mysql-test/extra/rpl_tests/rpl_parallel_load.test 2011-04-06 12:51:58 +0000 @@ -1,8 +1,8 @@ # # This is a load generator to call from rpl_parallel and rpl_sequential tests -# # +# # load volume parameter # @@ -260,26 +260,26 @@ select time_to_sec(@m_1) - time_to_sec(@ time_to_sec(@s_1) - time_to_sec(@s_0) as 'delta_s' into outfile 'delta.out'; -# let $i = $databases + 1; -# while($i) -# { -# let $i1 = $i; -# dec $i1; - -# let $diff_tables=master:test$i1.v_tm_nk, slave:test$i1.v_tm_nk; -# source include/diff_tables.inc; - -# let $diff_tables=master:test$i1.v_ti_nk, slave:test$i1.v_ti_nk; -# source include/diff_tables.inc; +let $i = $databases + 1; +while($i) +{ + let $i1 = $i; + dec $i1; + + let $diff_tables=master:test$i1.v_tm_nk, slave:test$i1.v_tm_nk; + source include/diff_tables.inc; + + let $diff_tables=master:test$i1.v_ti_nk, slave:test$i1.v_ti_nk; + source include/diff_tables.inc; -# let $diff_tables=master:test$i1.v_tm_wk, slave:test$i1.v_tm_wk; -# source include/diff_tables.inc; + let $diff_tables=master:test$i1.v_tm_wk, slave:test$i1.v_tm_wk; + source include/diff_tables.inc; -# let $diff_tables=master:test$i1.v_ti_wk, slave:test$i1.v_ti_wk; -# source include/diff_tables.inc; + let $diff_tables=master:test$i1.v_ti_wk, slave:test$i1.v_ti_wk; + source include/diff_tables.inc; -# dec $i; -# } + dec $i; +} --enable_result_log --enable_query_log === modified file 'mysql-test/suite/rpl/r/rpl_parallel.result' --- a/mysql-test/suite/rpl/r/rpl_parallel.result 2011-04-03 10:07:30 +0000 +++ b/mysql-test/suite/rpl/r/rpl_parallel.result 2011-04-05 16:26:37 +0000 @@ -12,5 +12,69 @@ select ts from test0.benchmark where sta select ts from test0.benchmark where state like 'slave ends load' into @s_1; select time_to_sec(@m_1) - time_to_sec(@m_0) as 'delta_m', time_to_sec(@s_1) - time_to_sec(@s_0) as 'delta_s' into outfile 'delta.out'; +include/diff_tables.inc [master:test15.v_tm_nk, slave:test15.v_tm_nk] +include/diff_tables.inc [master:test15.v_ti_nk, slave:test15.v_ti_nk] +include/diff_tables.inc [master:test15.v_tm_wk, slave:test15.v_tm_wk] +include/diff_tables.inc [master:test15.v_ti_wk, slave:test15.v_ti_wk] +include/diff_tables.inc [master:test14.v_tm_nk, slave:test14.v_tm_nk] +include/diff_tables.inc [master:test14.v_ti_nk, slave:test14.v_ti_nk] +include/diff_tables.inc [master:test14.v_tm_wk, slave:test14.v_tm_wk] +include/diff_tables.inc [master:test14.v_ti_wk, slave:test14.v_ti_wk] +include/diff_tables.inc [master:test13.v_tm_nk, slave:test13.v_tm_nk] +include/diff_tables.inc [master:test13.v_ti_nk, slave:test13.v_ti_nk] +include/diff_tables.inc [master:test13.v_tm_wk, slave:test13.v_tm_wk] +include/diff_tables.inc [master:test13.v_ti_wk, slave:test13.v_ti_wk] +include/diff_tables.inc [master:test12.v_tm_nk, slave:test12.v_tm_nk] +include/diff_tables.inc [master:test12.v_ti_nk, slave:test12.v_ti_nk] +include/diff_tables.inc [master:test12.v_tm_wk, slave:test12.v_tm_wk] +include/diff_tables.inc [master:test12.v_ti_wk, slave:test12.v_ti_wk] +include/diff_tables.inc [master:test11.v_tm_nk, slave:test11.v_tm_nk] +include/diff_tables.inc [master:test11.v_ti_nk, slave:test11.v_ti_nk] +include/diff_tables.inc [master:test11.v_tm_wk, slave:test11.v_tm_wk] +include/diff_tables.inc [master:test11.v_ti_wk, slave:test11.v_ti_wk] +include/diff_tables.inc [master:test10.v_tm_nk, slave:test10.v_tm_nk] +include/diff_tables.inc [master:test10.v_ti_nk, slave:test10.v_ti_nk] +include/diff_tables.inc [master:test10.v_tm_wk, slave:test10.v_tm_wk] +include/diff_tables.inc [master:test10.v_ti_wk, slave:test10.v_ti_wk] +include/diff_tables.inc [master:test9.v_tm_nk, slave:test9.v_tm_nk] +include/diff_tables.inc [master:test9.v_ti_nk, slave:test9.v_ti_nk] +include/diff_tables.inc [master:test9.v_tm_wk, slave:test9.v_tm_wk] +include/diff_tables.inc [master:test9.v_ti_wk, slave:test9.v_ti_wk] +include/diff_tables.inc [master:test8.v_tm_nk, slave:test8.v_tm_nk] +include/diff_tables.inc [master:test8.v_ti_nk, slave:test8.v_ti_nk] +include/diff_tables.inc [master:test8.v_tm_wk, slave:test8.v_tm_wk] +include/diff_tables.inc [master:test8.v_ti_wk, slave:test8.v_ti_wk] +include/diff_tables.inc [master:test7.v_tm_nk, slave:test7.v_tm_nk] +include/diff_tables.inc [master:test7.v_ti_nk, slave:test7.v_ti_nk] +include/diff_tables.inc [master:test7.v_tm_wk, slave:test7.v_tm_wk] +include/diff_tables.inc [master:test7.v_ti_wk, slave:test7.v_ti_wk] +include/diff_tables.inc [master:test6.v_tm_nk, slave:test6.v_tm_nk] +include/diff_tables.inc [master:test6.v_ti_nk, slave:test6.v_ti_nk] +include/diff_tables.inc [master:test6.v_tm_wk, slave:test6.v_tm_wk] +include/diff_tables.inc [master:test6.v_ti_wk, slave:test6.v_ti_wk] +include/diff_tables.inc [master:test5.v_tm_nk, slave:test5.v_tm_nk] +include/diff_tables.inc [master:test5.v_ti_nk, slave:test5.v_ti_nk] +include/diff_tables.inc [master:test5.v_tm_wk, slave:test5.v_tm_wk] +include/diff_tables.inc [master:test5.v_ti_wk, slave:test5.v_ti_wk] +include/diff_tables.inc [master:test4.v_tm_nk, slave:test4.v_tm_nk] +include/diff_tables.inc [master:test4.v_ti_nk, slave:test4.v_ti_nk] +include/diff_tables.inc [master:test4.v_tm_wk, slave:test4.v_tm_wk] +include/diff_tables.inc [master:test4.v_ti_wk, slave:test4.v_ti_wk] +include/diff_tables.inc [master:test3.v_tm_nk, slave:test3.v_tm_nk] +include/diff_tables.inc [master:test3.v_ti_nk, slave:test3.v_ti_nk] +include/diff_tables.inc [master:test3.v_tm_wk, slave:test3.v_tm_wk] +include/diff_tables.inc [master:test3.v_ti_wk, slave:test3.v_ti_wk] +include/diff_tables.inc [master:test2.v_tm_nk, slave:test2.v_tm_nk] +include/diff_tables.inc [master:test2.v_ti_nk, slave:test2.v_ti_nk] +include/diff_tables.inc [master:test2.v_tm_wk, slave:test2.v_tm_wk] +include/diff_tables.inc [master:test2.v_ti_wk, slave:test2.v_ti_wk] +include/diff_tables.inc [master:test1.v_tm_nk, slave:test1.v_tm_nk] +include/diff_tables.inc [master:test1.v_ti_nk, slave:test1.v_ti_nk] +include/diff_tables.inc [master:test1.v_tm_wk, slave:test1.v_tm_wk] +include/diff_tables.inc [master:test1.v_ti_wk, slave:test1.v_ti_wk] +include/diff_tables.inc [master:test0.v_tm_nk, slave:test0.v_tm_nk] +include/diff_tables.inc [master:test0.v_ti_nk, slave:test0.v_ti_nk] +include/diff_tables.inc [master:test0.v_tm_wk, slave:test0.v_tm_wk] +include/diff_tables.inc [master:test0.v_ti_wk, slave:test0.v_ti_wk] set @@global.mts_exp_slave_local_timestamp= @save.mts_exp_slave_local_timestamp; include/rpl_end.inc === modified file 'mysql-test/suite/rpl/r/rpl_sequential.result' --- a/mysql-test/suite/rpl/r/rpl_sequential.result 2011-04-03 10:07:30 +0000 +++ b/mysql-test/suite/rpl/r/rpl_sequential.result 2011-04-06 12:51:58 +0000 @@ -16,5 +16,69 @@ select ts from test0.benchmark where sta select ts from test0.benchmark where state like 'slave ends load' into @s_1; select time_to_sec(@m_1) - time_to_sec(@m_0) as 'delta_m', time_to_sec(@s_1) - time_to_sec(@s_0) as 'delta_s' into outfile 'delta.out'; +include/diff_tables.inc [master:test15.v_tm_nk, slave:test15.v_tm_nk] +include/diff_tables.inc [master:test15.v_ti_nk, slave:test15.v_ti_nk] +include/diff_tables.inc [master:test15.v_tm_wk, slave:test15.v_tm_wk] +include/diff_tables.inc [master:test15.v_ti_wk, slave:test15.v_ti_wk] +include/diff_tables.inc [master:test14.v_tm_nk, slave:test14.v_tm_nk] +include/diff_tables.inc [master:test14.v_ti_nk, slave:test14.v_ti_nk] +include/diff_tables.inc [master:test14.v_tm_wk, slave:test14.v_tm_wk] +include/diff_tables.inc [master:test14.v_ti_wk, slave:test14.v_ti_wk] +include/diff_tables.inc [master:test13.v_tm_nk, slave:test13.v_tm_nk] +include/diff_tables.inc [master:test13.v_ti_nk, slave:test13.v_ti_nk] +include/diff_tables.inc [master:test13.v_tm_wk, slave:test13.v_tm_wk] +include/diff_tables.inc [master:test13.v_ti_wk, slave:test13.v_ti_wk] +include/diff_tables.inc [master:test12.v_tm_nk, slave:test12.v_tm_nk] +include/diff_tables.inc [master:test12.v_ti_nk, slave:test12.v_ti_nk] +include/diff_tables.inc [master:test12.v_tm_wk, slave:test12.v_tm_wk] +include/diff_tables.inc [master:test12.v_ti_wk, slave:test12.v_ti_wk] +include/diff_tables.inc [master:test11.v_tm_nk, slave:test11.v_tm_nk] +include/diff_tables.inc [master:test11.v_ti_nk, slave:test11.v_ti_nk] +include/diff_tables.inc [master:test11.v_tm_wk, slave:test11.v_tm_wk] +include/diff_tables.inc [master:test11.v_ti_wk, slave:test11.v_ti_wk] +include/diff_tables.inc [master:test10.v_tm_nk, slave:test10.v_tm_nk] +include/diff_tables.inc [master:test10.v_ti_nk, slave:test10.v_ti_nk] +include/diff_tables.inc [master:test10.v_tm_wk, slave:test10.v_tm_wk] +include/diff_tables.inc [master:test10.v_ti_wk, slave:test10.v_ti_wk] +include/diff_tables.inc [master:test9.v_tm_nk, slave:test9.v_tm_nk] +include/diff_tables.inc [master:test9.v_ti_nk, slave:test9.v_ti_nk] +include/diff_tables.inc [master:test9.v_tm_wk, slave:test9.v_tm_wk] +include/diff_tables.inc [master:test9.v_ti_wk, slave:test9.v_ti_wk] +include/diff_tables.inc [master:test8.v_tm_nk, slave:test8.v_tm_nk] +include/diff_tables.inc [master:test8.v_ti_nk, slave:test8.v_ti_nk] +include/diff_tables.inc [master:test8.v_tm_wk, slave:test8.v_tm_wk] +include/diff_tables.inc [master:test8.v_ti_wk, slave:test8.v_ti_wk] +include/diff_tables.inc [master:test7.v_tm_nk, slave:test7.v_tm_nk] +include/diff_tables.inc [master:test7.v_ti_nk, slave:test7.v_ti_nk] +include/diff_tables.inc [master:test7.v_tm_wk, slave:test7.v_tm_wk] +include/diff_tables.inc [master:test7.v_ti_wk, slave:test7.v_ti_wk] +include/diff_tables.inc [master:test6.v_tm_nk, slave:test6.v_tm_nk] +include/diff_tables.inc [master:test6.v_ti_nk, slave:test6.v_ti_nk] +include/diff_tables.inc [master:test6.v_tm_wk, slave:test6.v_tm_wk] +include/diff_tables.inc [master:test6.v_ti_wk, slave:test6.v_ti_wk] +include/diff_tables.inc [master:test5.v_tm_nk, slave:test5.v_tm_nk] +include/diff_tables.inc [master:test5.v_ti_nk, slave:test5.v_ti_nk] +include/diff_tables.inc [master:test5.v_tm_wk, slave:test5.v_tm_wk] +include/diff_tables.inc [master:test5.v_ti_wk, slave:test5.v_ti_wk] +include/diff_tables.inc [master:test4.v_tm_nk, slave:test4.v_tm_nk] +include/diff_tables.inc [master:test4.v_ti_nk, slave:test4.v_ti_nk] +include/diff_tables.inc [master:test4.v_tm_wk, slave:test4.v_tm_wk] +include/diff_tables.inc [master:test4.v_ti_wk, slave:test4.v_ti_wk] +include/diff_tables.inc [master:test3.v_tm_nk, slave:test3.v_tm_nk] +include/diff_tables.inc [master:test3.v_ti_nk, slave:test3.v_ti_nk] +include/diff_tables.inc [master:test3.v_tm_wk, slave:test3.v_tm_wk] +include/diff_tables.inc [master:test3.v_ti_wk, slave:test3.v_ti_wk] +include/diff_tables.inc [master:test2.v_tm_nk, slave:test2.v_tm_nk] +include/diff_tables.inc [master:test2.v_ti_nk, slave:test2.v_ti_nk] +include/diff_tables.inc [master:test2.v_tm_wk, slave:test2.v_tm_wk] +include/diff_tables.inc [master:test2.v_ti_wk, slave:test2.v_ti_wk] +include/diff_tables.inc [master:test1.v_tm_nk, slave:test1.v_tm_nk] +include/diff_tables.inc [master:test1.v_ti_nk, slave:test1.v_ti_nk] +include/diff_tables.inc [master:test1.v_tm_wk, slave:test1.v_tm_wk] +include/diff_tables.inc [master:test1.v_ti_wk, slave:test1.v_ti_wk] +include/diff_tables.inc [master:test0.v_tm_nk, slave:test0.v_tm_nk] +include/diff_tables.inc [master:test0.v_ti_nk, slave:test0.v_ti_nk] +include/diff_tables.inc [master:test0.v_tm_wk, slave:test0.v_tm_wk] +include/diff_tables.inc [master:test0.v_ti_wk, slave:test0.v_ti_wk] set @@global.mts_exp_slave_local_timestamp= @save.mts_exp_slave_local_timestamp; include/rpl_end.inc === modified file 'mysql-test/suite/rpl/t/rpl_parallel-slave.opt' --- a/mysql-test/suite/rpl/t/rpl_parallel-slave.opt 2011-04-03 10:07:30 +0000 +++ b/mysql-test/suite/rpl/t/rpl_parallel-slave.opt 2011-04-05 16:26:37 +0000 @@ -1,2 +1 @@ ---log-warnings=0 --slave-transaction-retries=0 - +--mts-slave-parallel-workers=4 --log-warnings=0 --slave-transaction-retries=0 === modified file 'sql/log_event.cc' --- a/sql/log_event.cc 2011-03-30 14:11:24 +0000 +++ b/sql/log_event.cc 2011-04-06 12:51:58 +0000 @@ -2714,7 +2714,7 @@ void append_item_to_jobs(slave_job_item sprintf(wait_info, info_format, new_pend_size); rli->mts_wqs_oversize= TRUE; - rli->wait_jobs++; + rli->wait_jobs++; // waiting due to the total size old_msg= thd->enter_cond(&rli->pending_jobs_cond, &rli->pending_jobs_lock, wait_info); mysql_cond_wait(&rli->pending_jobs_cond, &rli->pending_jobs_lock); @@ -2741,6 +2741,7 @@ void append_item_to_jobs(slave_job_item // todo: experiment with weight to get a good approximation formula ulong nap_weight= rli->mts_wqs_overrun + 1; my_sleep(nap_weight * rli->mts_coordinator_basic_nap); + rli->mts_wqs_underrun_cnt++; } ret= -1; @@ -2761,6 +2762,7 @@ void append_item_to_jobs(slave_job_item old_msg= thd->enter_cond(&w->jobs_cond, &w->jobs_lock, wait_info); w->jobs.overfill= TRUE; w->jobs.waited_overfill++; + rli->mts_wqs_overfill_cnt++; mysql_cond_wait(&w->jobs_cond, &w->jobs_lock); thd->exit_cond(old_msg); @@ -3066,6 +3068,7 @@ int slave_worker_exec_job(Slave_worker * if (w->jobs.len == w->jobs.s - 1 && w->jobs.overfill == TRUE) { w->jobs.overfill= FALSE; + // todo: w->hungry_cnt++; mysql_cond_signal(&w->jobs_cond); } mysql_mutex_unlock(&w->jobs_lock); @@ -3081,8 +3084,7 @@ int slave_worker_exec_job(Slave_worker * if ((rli->mts_worker_underrun_level * w->jobs.s) / 100 > w->jobs.len) { rli-> mts_wqs_underrun_w_id= w->id; - // todo: - // w->underrun_cnt++; + // todo: w->underrun_cnt++; } else if (rli->mts_wqs_underrun_w_id == w->id) { rli->mts_wqs_underrun_w_id= (ulong) -1; @@ -3093,8 +3095,7 @@ int slave_worker_exec_job(Slave_worker * { rli->mts_wqs_overrun++; w->wq_overrun_set= TRUE; - // todo: - // w->underrun_cnt++; + // todo: w->underrun_cnt++; } else if (w->wq_overrun_set == TRUE) { === modified file 'sql/rpl_rli.cc' --- a/sql/rpl_rli.cc 2011-02-27 17:35:25 +0000 +++ b/sql/rpl_rli.cc 2011-04-06 12:51:58 +0000 @@ -107,6 +107,7 @@ void Relay_log_info::init_workers(ulong whether the feature is or going to be active or not. */ trans_jobs= stmt_jobs= pending_jobs= wait_jobs= 0; + mts_wqs_underrun_cnt= mts_wqs_overfill_cnt= 0; key_mutex_slave_parallel_worker= new PSI_mutex_key[slave_parallel_workers]; key_cond_slave_parallel_worker= new PSI_cond_key[slave_parallel_workers]; === modified file 'sql/rpl_rli.h' --- a/sql/rpl_rli.h 2011-02-27 17:35:25 +0000 +++ b/sql/rpl_rli.h 2011-04-06 12:51:58 +0000 @@ -436,7 +436,7 @@ public: */ DYNAMIC_ARRAY workers; // number's is determined by global slave_parallel_workers volatile ulong pending_jobs; - ulong trans_jobs, wait_jobs, stmt_jobs; // live time is one trans, statement (ndb epoch) + ulong trans_jobs, wait_jobs, stmt_jobs; // wait_jobs - waiting times due to the total size mysql_mutex_t pending_jobs_lock; mysql_cond_t pending_jobs_cond; ulong mts_slave_worker_queue_len_max; @@ -451,6 +451,8 @@ public: bool curr_group_isolated; // Trans is exec:d by Worker but in exclusive env volatile ulong mts_wqs_underrun_w_id; // Id of a Worker whose queue is getting empty volatile long mts_wqs_overrun; // W to incr and decr + ulong mts_wqs_underrun_cnt; // Coord goes to sleep when senses Workers are content + ulong mts_wqs_overfill_cnt; // Coord waits if a W's queue is full long mts_worker_underrun_level; // percent of WQ size at which Worker claims hungry ulong mts_coordinator_basic_nap; // C sleeps to avoid WQs overrun Slave_worker* get_current_worker() const; === modified file 'sql/rpl_slave.cc' --- a/sql/rpl_slave.cc 2011-03-30 14:11:24 +0000 +++ b/sql/rpl_slave.cc 2011-04-06 12:51:58 +0000 @@ -3784,6 +3784,12 @@ pthread_handler_t handle_slave_worker(vo mysql_mutex_lock(&w->jobs_lock); w->jobs.len= rli->mts_slave_worker_queue_len_max + 1; + sql_print_information("Worker %lu statistics: " + "events processed = %lu " + "hungry waits = %lu " + "priv queue overfills = %llu " + ,w->id, w->stmt_jobs, w->wait_jobs, w->jobs.waited_overfill); + mysql_cond_signal(&w->jobs_cond); // famous last goodbye mysql_mutex_unlock(&w->jobs_lock); @@ -4437,6 +4443,13 @@ void slave_stop_workers(Relay_log_info * delete w; } + sql_print_information("MTS coordinator statistics: " + "events processed = %lu " + "waits due a Worker queue full = %lu " + "waits due the total size = %lu " + "sleeps when Workers occupied = %lu " + ,rli->stmt_jobs, rli->mts_wqs_overfill_cnt, rli->wait_jobs, rli->mts_wqs_underrun_cnt); + DBUG_ASSERT(rli->pending_jobs == 0); DBUG_ASSERT(rli->mts_pending_jobs_size == 0); --===============0493092144== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/andrei.elkin@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: andrei.elkin@stripped # target_branch: file:///home/andrei/MySQL/BZR/2a-23May/WL/mysql-next-\ # mr-wl5569/ # testament_sha1: 438560f98bc36b87aa942e96238af474902fb9e0 # timestamp: 2011-04-06 15:54:30 +0300 # source_branch: file:///home/andrei/MySQL/BZR/2a-23May/mysql-trunk/ # base_revision_id: andrei.elkin@stripped\ # ptvutwjgxdtgy38z # # Begin bundle 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 --===============0493092144==--