From: Zardosht Kasheff Date: June 20 2012 5:22pm Subject: Re: purpose of thd_mark_transaction_to_rollback List-Archive: http://lists.mysql.com/internals/38536 Message-Id: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello Dmitry, Thank you for your response. Why does InnoDB do this when a deadlock is detected? Does every storage engine need to do this? Is this part of some specification that calls for this? Or is it some sort of performance optimization? Thanks -Zardosht On Tue, Jun 19, 2012 at 3:53 PM, Dmitry Lenev wro= te: > Hello Zardosht! > > * Zardosht Kasheff [12/06/19 22:20]: >> Hello all, >> >> What is the purpose of thd_mark_transaction_to_rollback? > > This call allows storage engine to request a transaction/statement > rollback from SQL-layer. > > For example, when InnoDB storage engine detects a deadlock it rolls > back the transaction inside storage engine (i.e. itself), but it still > needs to invoke this method so transaction is properly rolled back > in other storage engines (including binary log). > >> Under what conditions is a storage engine required to call this function= ? > > See above. I guess it is good idea to call this method when your > storage engine decides to initiate a transaction rollback because > of internal reasons, i.e. in case when such a rollback is not > explicitly initiated from SQL-layer. > > Hope this helps! > > -- > Dmitry Lenev, Software Developer > Oracle Development SPB/MySQL, www.mysql.com > > Are you MySQL certified? =A0http://www.mysql.com/certification