@Override public <T, C extends PreCommitCondition, E extends Exception> T runTaskWithConditionThrowOnConflict( C condition, ConditionAwareTransactionTask<T, C, E> task) throws E, TransactionFailedRetriableException { checkOpen(); try { TransactionAndImmutableTsLock txAndLock = runTimed(() -> setupRunTaskWithConditionThrowOnConflict(condition), "setupTask"); return finishRunTaskWithLockThrowOnConflict(txAndLock, transaction -> task.execute(transaction, condition)); } finally { condition.cleanup(); } }
private void throwIfPreCommitConditionInvalid(long timestamp) { try { preCommitCondition.throwIfConditionInvalid(timestamp); } catch (TransactionFailedException ex) { transactionOutcomeMetrics.markPreCommitCheckFailed(); throw ex; } }
if (hasReads()) { preCommitCondition.throwIfConditionInvalid(getStartTimestamp());
new ReadTransaction(transaction, sweepStrategyManager)); } finally { condition.cleanup();
private void throwIfPreCommitConditionInvalid(long timestamp) { try { preCommitCondition.throwIfConditionInvalid(timestamp); } catch (TransactionFailedException ex) { transactionOutcomeMetrics.markPreCommitCheckFailed(); throw ex; } }
@Override public <T, C extends PreCommitCondition, E extends Exception> T runTaskWithConditionThrowOnConflict( C condition, ConditionAwareTransactionTask<T, C, E> task) throws E, TransactionFailedRetriableException { checkOpen(); try { TransactionAndImmutableTsLock txAndLock = runTimed(() -> setupRunTaskWithConditionThrowOnConflict(condition), "setupTask"); return finishRunTaskWithLockThrowOnConflict(txAndLock, transaction -> task.execute(transaction, condition)); } finally { condition.cleanup(); } }
if (hasReads()) { preCommitCondition.throwIfConditionInvalid(getStartTimestamp());
new ReadTransaction(transaction, sweepStrategyManager)); } finally { condition.cleanup();