<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>This behaviour is unspecified:</div><div>Tx is prepared on N1 and N2. Then N2 crashes, and prepared tx is migrated across to N3. What happens with the tx if it cannot acquire locks on N3, because there's another tx2 preparing* on N3?</div><div><br></div><div>*preparing - it cannot be finished preparing as there's already a *prepared* tx owning some of its locks. We cannot have two prepared tx that have same lock acquired. &nbsp;</div><div><br></div><div><span class="Apple-style-span" style="font-family: 'Lucida Grande'; color: rgb(20, 20, 20); "><div class="x-message" style="word-wrap: break-word; text-rendering: optimizelegibility; padding-top: 2px; padding-bottom: 1px; margin-left: 6px; margin-right: 8px; padding-right: 1px; margin-bottom: -1px; "><div class="x-text" style="word-wrap: break-word; text-rendering: optimizelegibility; line-height: 1.3em; padding-bottom: 1px; ">Here is my take on this scenario: if the tx is already prepared on Node1 then same tx should force lock acquisition on Node3 and force rollback of any tx that holds a lock on that node. Why? (1) because Node1's tx is already prepared and it made a commitment to the TxManager to apply state (or manual recovery needs to be done - bad for throughput and user experience. (2) on the other hand the transaction on Node3 is not yet prepared.</div><div class="x-text" style="word-wrap: break-word; text-rendering: optimizelegibility; line-height: 1.3em; padding-bottom: 1px; "><br></div><div class="x-text" style="word-wrap: break-word; text-rendering: optimizelegibility; line-height: 1.3em; padding-bottom: 1px; ">Cheers,</div><div class="x-text" style="word-wrap: break-word; text-rendering: optimizelegibility; line-height: 1.3em; padding-bottom: 1px; ">Mircea</div></div><div class="x-message consecutive outgoing message IRC showIcons" style="word-wrap: break-word; text-rendering: optimizelegibility; padding-top: 1px; padding-bottom: 1px; margin-left: 6px; margin-right: 8px; padding-right: 1px; margin-bottom: -1px; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221); margin-top: 1px; "><div class="x-time" title="01 Mar 2011" style="word-wrap: break-word; text-rendering: optimizelegibility; visibility: hidden; font-weight: bold; position: absolute; padding-left: 4px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; -webkit-box-shadow: rgba(0, 0, 0, 0.496094) 0px 1px 4px; background-color: rgba(255, 255, 255, 0.796875); color: rgba(16, 16, 16, 0.796875); padding-top: 0px; padding-bottom: 1px; margin-top: 0px; right: 1px; padding-right: 5px; "></div></div></span></div></body></html>