Github user ohadshacham commented on a diff in the pull request:

    https://github.com/apache/incubator-omid/pull/46#discussion_r223989230
  
    --- Diff: 
transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransactionManager.java
 ---
    @@ -350,6 +356,43 @@ private void 
markReadOnlyTransaction(AbstractTransaction<? extends CellId> readO
     
         }
     
    +    private void commitLowLatencyTransaction(AbstractTransaction<? extends 
CellId> tx)
    +            throws RollbackException, TransactionException {
    +        try {
    +
    +            long commitTs = tsoClient.commit(tx.getStartTimestamp(), 
tx.getWriteSet(), tx.getConflictFreeWriteSet()).get();
    +            boolean committed = 
commitTableWriter.atomicAddCommittedTransaction(tx.getStartTimestamp(),commitTs);
    +            if (!committed) {
    +                // Transaction has been invalidated by other client
    +                rollback(tx);
    +                
commitTableClient.completeTransaction(tx.getStartTimestamp());
    +                rolledbackTxsCounter.inc();
    +                throw new RollbackException("Transaction " + 
tx.getTransactionId() + " got invalidated");
    +            }
    +            certifyCommitForTx(tx, commitTs);
    +            updateShadowCellsAndRemoveCommitTableEntry(tx, postCommitter);
    +
    +        } catch (ExecutionException e) {
    +            if (e.getCause() instanceof AbortException) { // TSO reports 
Tx conflicts as AbortExceptions in the future
    +                rollback(tx);
    +                rolledbackTxsCounter.inc();
    +                throw new RollbackException("Conflicts detected in tx 
writeset", e.getCause());
    +            }
    +
    +            if (e.getCause() instanceof ServiceUnavailableException || 
e.getCause() instanceof ConnectionException) {
    +                errorTxsCounter.inc();
    +                rollback(tx); // Rollback proactively cause it's likely 
that a new TSOServer is now master
    --- End diff --
    
    the leader


---

Reply via email to