[ 
https://issues.apache.org/jira/browse/PHOENIX-1674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15013870#comment-15013870
 ] 

ASF GitHub Bot commented on PHOENIX-1674:
-----------------------------------------

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

    https://github.com/apache/phoenix/pull/129#discussion_r45368191
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java ---
    @@ -570,6 +946,97 @@ public void rollback(PhoenixConnection connection) 
throws SQLException {
         @Override
         public void close() throws SQLException {
         }
    +
    +    private void reset() {
    +        txStarted = false;
    +        tx = null;
    +        uncommittedPhysicalNames.clear();
    +    }
    +    
    +    public void rollback() throws SQLException {
    +        clear();
    +        txAwares.clear();
    +        if (txContext != null) {
    +            try {
    +                if (txStarted) {
    +                    txContext.abort();
    +                }
    +            } catch (TransactionFailureException e) {
    +                throw new SQLException(e); // TODO: error code
    +            } finally {
    +                   reset();
    +            }
    +        }
    +    }
    +    
    +    public void commit() throws SQLException {
    +           boolean sendMutationsFailed=false;
    +        try {
    +            send();
    +        } catch (Throwable t) {
    +           sendMutationsFailed=true;
    +           throw t;
    +        } finally {
    +            txAwares.clear();
    +            if (txContext != null) {
    +                try {
    +                    if (txStarted && !sendMutationsFailed) {
    +                        txContext.finish();
    +                    }
    +                } catch (TransactionFailureException e) {
    +                    try {
    +                        txContext.abort(e);
    +                        throw TransactionUtil.getSQLException(e);
    +                    } catch (TransactionFailureException e1) {
    +                        throw TransactionUtil.getSQLException(e);
    +                    }
    +                } finally {
    +                   if (!sendMutationsFailed) {
    +                           reset();
    +                   }
    +                  }
    +            }
    +        }
    +    }
    +
    +    /**
    --- End diff --
    
    Slight tweak to this comment:
    Support read-your-own-write semantics by sending uncommitted data to HBase 
prior to running
    a query. In this way, they are visible to subsequent reads but are not 
actually committed until
    commit is called.


> Snapshot isolation transaction support through Tephra
> -----------------------------------------------------
>
>                 Key: PHOENIX-1674
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1674
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: James Taylor
>              Labels: SFDC
>
> Tephra (http://tephra.io/ and https://github.com/caskdata/tephra) is one 
> option for getting transaction support in Phoenix. Let's use this JIRA to 
> discuss the way in which this could be integrated along with the pros and 
> cons.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to