|
Actually this cannot be fixed in Infinispan, because the lock acquisition (that's causing the transaction to fail) is performed only on primary owner and therefore, we could get different results if we just ignored the modification when we cannot acquire the lock - we could even override existing value on backup owner when the override would fail on primary owner, since the transaction would be still committed. To resolve this properly, we should rather do:
a) PFER after the transaction completes. However, this won't work properly in replicated query cache anyway - PFERs are only local. b) Separate transaction, and ignore the result. I am not sure about starting another transaction from afterCompletion, though.
|