|
From: John R. <jr...@bi...> - 2013-06-20 15:32:04
|
> (1) translate "XBEGIN fail-addr" as "goto fail-addr"; that is: push > simulated execution directly onto the failure path. This is simple > but will have poor performance, if (as is likely) the failure path > uses normal locking and is not tuned for speed. That strategy might induce a deadlock, infinite loop, or application failure in some cases. For example, one fallback strategy for the application when the transaction fails is: grab a larger lock (more powerful) which logically guarantees that the transaction will succeed, then re-run the transaction while holding that lock. If VG always interprets XBEGIN as "goto transaction failed" then the application cannot make progress. -- |