Repository: phoenix Updated Branches: refs/heads/txn 28da96e9c -> aaf8b4fe6
Use row level conflict detection Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/aaf8b4fe Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/aaf8b4fe Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/aaf8b4fe Branch: refs/heads/txn Commit: aaf8b4fe6cc24276b7efd5e44529db27e74a21f8 Parents: 28da96e Author: Thomas D'Silva <twdsi...@gmail.com> Authored: Thu Mar 12 18:30:59 2015 -0700 Committer: Thomas D'Silva <twdsi...@gmail.com> Committed: Thu Mar 12 18:30:59 2015 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/phoenix/execute/MutationState.java | 4 +++- .../java/org/apache/phoenix/iterate/TableResultIterator.java | 3 ++- .../main/java/org/apache/phoenix/util/TransactionUtil.java | 7 +++++++ 3 files changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/aaf8b4fe/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java b/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java index c452991..edaab9e 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import co.cask.tephra.TxConstants; import co.cask.tephra.hbase98.TransactionAwareHTable; import org.apache.hadoop.hbase.HConstants; @@ -60,6 +61,7 @@ import org.apache.phoenix.util.LogUtil; import org.apache.phoenix.util.PhoenixRuntime; import org.apache.phoenix.util.SQLCloseable; import org.apache.phoenix.util.ServerUtil; +import org.apache.phoenix.util.TransactionUtil; import org.cloudera.htrace.Span; import org.cloudera.htrace.TraceScope; import org.slf4j.Logger; @@ -424,7 +426,7 @@ public class MutationState implements SQLCloseable { // Don't add immutable indexes (those are the only ones that would participate // during a commit), as we don't need conflict detection for these. if (table.isTransactional() && table.getType() != PTableType.INDEX) { - TransactionAwareHTable txnAware = new TransactionAwareHTable(hTable); + TransactionAwareHTable txnAware = TransactionUtil.getTransactionAwareHTable(hTable); connection.addTxParticipant(txnAware); hTable = txnAware; } http://git-wip-us.apache.org/repos/asf/phoenix/blob/aaf8b4fe/phoenix-core/src/main/java/org/apache/phoenix/iterate/TableResultIterator.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/TableResultIterator.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/TableResultIterator.java index 5beb2e1..7f5d527 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/TableResultIterator.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/TableResultIterator.java @@ -31,6 +31,7 @@ import org.apache.phoenix.schema.TableRef; import org.apache.phoenix.schema.tuple.Tuple; import org.apache.phoenix.util.Closeables; import org.apache.phoenix.util.ServerUtil; +import org.apache.phoenix.util.TransactionUtil; /** @@ -86,7 +87,7 @@ public class TableResultIterator extends ExplainTable implements ResultIterator PTable table = tableRef.getTable(); HTableInterface htable = context.getConnection().getQueryServices().getTable(table.getPhysicalName().getBytes()); if (table.isTransactional()) { - TransactionAwareHTable txnAware = new TransactionAwareHTable(htable); + TransactionAwareHTable txnAware = TransactionUtil.getTransactionAwareHTable(htable); context.getConnection().addTxParticipant(txnAware); htable = txnAware; } http://git-wip-us.apache.org/repos/asf/phoenix/blob/aaf8b4fe/phoenix-core/src/main/java/org/apache/phoenix/util/TransactionUtil.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/TransactionUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/TransactionUtil.java index 0b154ce..34bba47 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/util/TransactionUtil.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/util/TransactionUtil.java @@ -24,7 +24,10 @@ import co.cask.tephra.Transaction; import co.cask.tephra.TransactionCodec; import co.cask.tephra.TransactionConflictException; import co.cask.tephra.TransactionFailureException; +import co.cask.tephra.TxConstants; +import co.cask.tephra.hbase98.TransactionAwareHTable; +import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.phoenix.exception.SQLExceptionCode; import org.apache.phoenix.exception.SQLExceptionInfo; @@ -63,4 +66,8 @@ public class TransactionUtil { .setRootCause(e) .build().buildException(); } + + public static TransactionAwareHTable getTransactionAwareHTable(HTableInterface htable) { + return new TransactionAwareHTable(htable, TxConstants.ConflictDetection.ROW); + } }