You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2015/05/21 09:36:14 UTC

[2/2] phoenix git commit: Additional comments for handling rollback for immutable indexes

Additional comments for handling rollback for immutable indexes


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/6f8f3943
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/6f8f3943
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/6f8f3943

Branch: refs/heads/txn
Commit: 6f8f39436ef24249af632267ea46594537992f17
Parents: d71b820
Author: James Taylor <jt...@salesforce.com>
Authored: Thu May 21 00:33:34 2015 -0700
Committer: James Taylor <jt...@salesforce.com>
Committed: Thu May 21 00:33:34 2015 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/phoenix/execute/MutationState.java  | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/6f8f3943/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 062798a..256e487 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
@@ -456,6 +456,11 @@ public class MutationState implements SQLCloseable {
             this.tableRef = tableRef;
         }
         
+        /**
+         * Called by Tephra when a transaction is aborted. We have this wrapper so that we get an
+         * opportunity to attach our index meta data to the mutations such that we can also undo
+         * the index mutations.
+         */
         @Override
         public void delete(List<Delete> deletes) throws IOException {
             try {
@@ -483,6 +488,9 @@ public class MutationState implements SQLCloseable {
                     // If we have mutable indexes, local immutable indexes, or global immutable indexes
                     // that reference key value columns, setup index meta data and attach here. In this
                     // case updates to the indexes will be generated on the server side.
+                    // An alternative would be to let Tephra track the row keys for the immutable index
+                    // by adding it as a transaction participant (soon we can prevent any conflict
+                    // detection from occurring) with the downside being the additional memory required.
                     if (!keyValueIndexes.isEmpty()) {
                         attachMetaData = true;
                         IndexMaintainer.serializeAdditional(table, indexMetaDataPtr, keyValueIndexes, connection);