From: Date: June 5 2009 12:23am Subject: bzr commit into mysql-5.0-bugteam branch (azundris:2765) Bug#32149 List-Archive: http://lists.mysql.com/commits/75655 X-Bug: 32149 Message-Id: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5177181202883952130==" --===============5177181202883952130== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///misc/mysql/forest/32149/50-32149/ based on revid:sergey.glukhov@stripped 2765 Tatiana A. Nurnberg 2009-06-05 Bug#32149: Long semaphore wait for adaptive hash latch Holding on to the temporary inno hash index latch is an optimization in many cases, but a pessimization in some others. Release temporary latches for those corner cases we (or rather, or customers, thanks!) have identified, that is, when we are about to do something that might take a really long time, like REPAIR or filesort. @ sql/ha_myisam.cc Let go of (inno, for now) latch when doing MyISAM-repair. (optimize passes through repair.) ("Stuck" in "Repair with keycache".) @ sql/sql_insert.cc Let go of (inno, for now) latch when doing CREATE...SELECT in select_insert::send_data() -- it might take a while. ("stuck" in "Sending data") @ sql/sql_select.cc Release temporary (inno, for now) latch on - free_tmp_table() (this can take surprisingly long, "removing tmp table") - create_myisam_from_heap() (HEAP table overflowing onto disk as MyISAM, "converting HEAP to MyISAM") modified: sql/ha_myisam.cc sql/sql_insert.cc sql/sql_select.cc === modified file 'sql/ha_myisam.cc' --- a/sql/ha_myisam.cc 2009-05-27 10:34:21 +0000 +++ b/sql/ha_myisam.cc 2009-06-04 22:23:08 +0000 @@ -1009,6 +1009,9 @@ int ha_myisam::repair(THD *thd, MI_CHECK param.out_flag= 0; strmov(fixed_name,file->filename); + // Release latches since this can take a long time + ha_release_temporary_latches(thd); + // Don't lock tables if we have used LOCK TABLE if (!thd->locked_tables && mi_lock_database(file, table->s->tmp_table ? F_EXTRA_LCK : F_WRLCK)) === modified file 'sql/sql_insert.cc' --- a/sql/sql_insert.cc 2009-05-06 13:06:32 +0000 +++ b/sql/sql_insert.cc 2009-06-04 22:23:08 +0000 @@ -2935,6 +2935,9 @@ bool select_insert::send_data(List } } + // Release latches in case bulk insert takes a long time + ha_release_temporary_latches(thd); + error= write_record(thd, table, &info); table->auto_increment_field_not_null= FALSE; === modified file 'sql/sql_select.cc' --- a/sql/sql_select.cc 2009-05-15 09:29:41 +0000 +++ b/sql/sql_select.cc 2009-06-04 22:23:08 +0000 @@ -10226,6 +10226,9 @@ free_tmp_table(THD *thd, TABLE *entry) save_proc_info=thd->proc_info; thd_proc_info(thd, "removing tmp table"); + // Release latches since this can take a long time + ha_release_temporary_latches(thd); + if (entry->file) { if (entry->db_stat) @@ -10274,6 +10277,10 @@ bool create_myisam_from_heap(THD *thd, T table->file->print_error(error,MYF(0)); DBUG_RETURN(1); } + + // Release latches since this can take a long time + ha_release_temporary_latches(thd); + new_table= *table; new_table.s= &new_table.share_not_to_be_used; new_table.s->db_type= DB_TYPE_MYISAM; --===============5177181202883952130== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/azundris@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: azundris@stripped # target_branch: file:///misc/mysql/forest/32149/50-32149/ # testament_sha1: 1fef216d62cdc7cc435fe1c2c2f1acfa50284511 # timestamp: 2009-06-05 00:23:15 +0200 # base_revision_id: sergey.glukhov@stripped\ # 846iabwsi4vml458 # # Begin bundle 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 V6cygFSe0uP+LuSKcKEhjahO4g== --===============5177181202883952130==--