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 <Dmitry.Lenev@stripped> wrote:
> Hello Zardosht!
>
> * Zardosht Kasheff <zardosht@stripped> [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? http://www.mysql.com/certification