in transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransactionManager.java [228:263]
public final void commit(Transaction transaction) throws RollbackException, TransactionException {
AbstractTransaction<? extends CellId> tx = enforceAbstractTransactionAsParam(transaction);
enforceTransactionIsInRunningState(tx);
if (tx.isRollbackOnly()) { // Manage explicit user rollback
rollback(tx);
throw new RollbackException(tx + ": Tx was set to rollback explicitly");
}
try {
preCommit(tx);
commitTimer.start();
try {
if (tx.getWriteSet().isEmpty() && tx.getConflictFreeWriteSet().isEmpty()) {
markReadOnlyTransaction(tx); // No need for read-only transactions to contact the TSO Server
} else {
if (tsoClient.isLowLatency())
commitLowLatencyTransaction(tx);
else
commitRegularTransaction(tx);
}
committedTxsCounter.inc();
} finally {
commitTimer.stop();
}
postCommit(tx);
} catch (TransactionManagerException e) {
throw new TransactionException(e.getMessage(), e);
}
}