Hi Cen,
from the gen-scripts.py, when using Hybrid and Timestamp conflict
resolution policies in EE (eager version management and eager conflict
detection), XACT_NO_BACKOFF is set to 1 meaning that exponential
backoff after abort is disabled.
This means those CRs use what we called "magic waiting", which means
that the aborted processor retries the transaction when the processor that
aborted it either unstalls or commits/aborts its own transaction (I don't
know which is the default). I believe the functionality to do this
waiting should be done by a function called magicWait() in
TransactionConflictManager.C.
Is there a reason for this?
Not that I know, You should be able to use exponential backoff for
those schemes merely by setting XACT_NO_BACKOFF to 0.
I tried to use Hybrid and Timestamp policies with XACT_NO_BACKOFF = 0
with 16 processors, but get segmentation fault.
Any idea why this happened?
Can you produce a debug trace by setting XACT_DEBUG to 1 and
XACT_DEBUG_LEVEL to 3? Also, include a dump of all the Ruby params you
are using. If the output file is large please zip it up
before sending it to us.
Luke
|