You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by td...@apache.org on 2017/05/10 18:04:44 UTC
[45/46] phoenix git commit: clean + fix merge bugs
clean + fix merge bugs
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/ffac47ee
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/ffac47ee
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/ffac47ee
Branch: refs/heads/omid
Commit: ffac47ee60c3af88b220e09dce230e718a68c42d
Parents: c840cc9
Author: Ohad Shacham <oh...@yahoo-inc.com>
Authored: Tue May 9 12:12:09 2017 +0300
Committer: Ohad Shacham <oh...@yahoo-inc.com>
Committed: Tue May 9 12:12:09 2017 +0300
----------------------------------------------------------------------
.../org/apache/phoenix/tx/TxCheckpointIT.java | 39 ++++++++++++++------
.../apache/phoenix/execute/MutationState.java | 23 +-----------
.../transaction/OmidTransactionContext.java | 6 ---
.../transaction/PhoenixTransactionContext.java | 8 ----
.../transaction/TephraTransactionContext.java | 1 -
5 files changed, 28 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java b/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
index aac9586..989a97e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
@@ -36,6 +36,7 @@ import org.apache.phoenix.end2end.ParallelStatsDisabledIT;
import org.apache.phoenix.execute.MutationState;
import org.apache.phoenix.jdbc.PhoenixConnection;
import org.apache.phoenix.query.QueryServices;
+import org.apache.phoenix.schema.PTableImpl;
import org.apache.phoenix.transaction.PhoenixTransactionContext.PhoenixVisibilityLevel;
import org.apache.phoenix.util.PropertiesUtil;
import org.apache.phoenix.util.SchemaUtil;
@@ -48,12 +49,25 @@ import org.junit.runners.Parameterized.Parameters;
public class TxCheckpointIT extends ParallelStatsDisabledIT {
private final boolean localIndex;
- private final boolean mutable;
-
- public TxCheckpointIT(boolean localIndex, boolean mutable) {
- this.localIndex = localIndex;
- this.mutable = mutable;
+ private final String tableDDLOptions;
+ public TxCheckpointIT(boolean localIndex, boolean mutable, boolean columnEncoded) {
+ StringBuilder optionBuilder = new StringBuilder();
+ this.localIndex = localIndex;
+ if (!columnEncoded) {
+ if (optionBuilder.length()!=0)
+ optionBuilder.append(",");
+ optionBuilder.append("COLUMN_ENCODED_BYTES=0");
+ }
+ if (!mutable) {
+ if (optionBuilder.length()!=0)
+ optionBuilder.append(",");
+ optionBuilder.append("IMMUTABLE_ROWS=true");
+ if (!columnEncoded) {
+ optionBuilder.append(",IMMUTABLE_STORAGE_SCHEME="+PTableImpl.ImmutableStorageScheme.ONE_CELL_PER_COLUMN);
+ }
+ }
+ this.tableDDLOptions = optionBuilder.toString();
}
private static Connection getConnection() throws SQLException {
@@ -66,10 +80,11 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT {
return conn;
}
- @Parameters(name="TxCheckpointIT_localIndex={0},mutable={1}") // name is used by failsafe as file name in reports
+ @Parameters(name="TxCheckpointIT_localIndex={0},mutable={1},columnEncoded={2}") // name is used by failsafe as file name in reports
public static Collection<Boolean[]> data() {
return Arrays.asList(new Boolean[][] {
- { false, false }, { false, true }, { true, false }, { true, true }
+ { false, false, false }, { false, false, true }, { false, true, false }, { false, true, true },
+ { true, false, false }, { true, false, true }, { true, true, false }, { true, true, true }
});
}
@@ -86,7 +101,7 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT {
Connection conn = getConnection(props);
conn.setAutoCommit(true);
conn.createStatement().execute("CREATE SEQUENCE "+seqName);
- conn.createStatement().execute("CREATE TABLE " + fullTableName + "(pk INTEGER PRIMARY KEY, val INTEGER)"+(!mutable? " IMMUTABLE_ROWS=true" : ""));
+ conn.createStatement().execute("CREATE TABLE " + fullTableName + "(pk INTEGER PRIMARY KEY, val INTEGER)"+tableDDLOptions);
conn.createStatement().execute("CREATE "+(localIndex? "LOCAL " : "")+"INDEX " + indexName + " ON " + fullTableName + "(val)");
conn.createStatement().execute("UPSERT INTO " + fullTableName + " VALUES (NEXT VALUE FOR " + seqName + ",1)");
@@ -122,7 +137,7 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT {
conn.setAutoCommit(false);
try {
Statement stmt = conn.createStatement();
- stmt.execute("CREATE TABLE " + fullTableName + "(k VARCHAR PRIMARY KEY, v1 VARCHAR, v2 VARCHAR)"+(!mutable? " IMMUTABLE_ROWS=true" : ""));
+ stmt.execute("CREATE TABLE " + fullTableName + "(k VARCHAR PRIMARY KEY, v1 VARCHAR, v2 VARCHAR)"+tableDDLOptions);
stmt.execute(indexDDL);
stmt.executeUpdate("upsert into " + fullTableName + " values('x1', 'y1', 'a1')");
@@ -212,7 +227,7 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT {
Statement stmt = conn.createStatement();
stmt.execute("CREATE TABLE " + fullTableName + "(ID BIGINT NOT NULL PRIMARY KEY, v1 VARCHAR, v2 VARCHAR)"
- + (!mutable ? " IMMUTABLE_ROWS=true" : ""));
+ + tableDDLOptions);
stmt.execute("CREATE " + (localIndex ? "LOCAL " : "")
+ "INDEX " + indexName + " ON " + fullTableName + " (v1) INCLUDE(v2)");
@@ -302,9 +317,9 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT {
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
stmt.execute("CREATE TABLE " + fullTableName + "1(ID1 BIGINT NOT NULL PRIMARY KEY, FK1A INTEGER, FK1B INTEGER)"
- + (!mutable ? " IMMUTABLE_ROWS=true" : ""));
+ + tableDDLOptions);
stmt.execute("CREATE TABLE " + fullTableName + "2(ID2 BIGINT NOT NULL PRIMARY KEY, FK2 INTEGER)"
- + (!mutable ? " IMMUTABLE_ROWS=true" : ""));
+ + tableDDLOptions);
stmt.execute("CREATE " + (localIndex ? "LOCAL " : "")
+ "INDEX " + indexName + " ON " + fullTableName + "1 (FK1B)");
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/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 e8d963e..c4d01b9 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
@@ -203,7 +203,7 @@ public class MutationState implements SQLCloseable {
* when a data table transaction is started before the create index
* but completes after it. In this case, we need to rerun the data
* table transaction after the index creation so that the index rows
- * are generated. See {@link #addDMLFence(PTable)} and TEPHRA-157
+ * are generated. See TEPHRA-157
* for more information.
* @param dataTable the data table upon which an index is being added
* @throws SQLException
@@ -222,22 +222,6 @@ public class MutationState implements SQLCloseable {
}
}
- /**
- * Add an entry to the change set representing the DML operation that is starting.
- * These entries will not conflict with each other, but they will conflict with a
- * DDL operation of creating an index. See {@link #addDMLFence(PTable)} and TEPHRA-157
- * for more information.
- * @param table the table which is doing DML
- * @throws SQLException
- */
- private void addDMLFence(PTable table) throws SQLException {
- if (table.getType() == PTableType.INDEX || !table.isTransactional()) {
- return;
- }
-
- phoenixTransactionContext.markDMLFence(table);
- }
-
public boolean checkpointIfNeccessary(MutationPlan plan) throws SQLException {
if (! phoenixTransactionContext.isTransactionRunning() || plan.getTargetRef() == null || plan.getTargetRef().getTable() == null || !plan.getTargetRef().getTable().isTransactional()) {
return false;
@@ -970,7 +954,6 @@ public class MutationState implements SQLCloseable {
if (table.isTransactional()) {
// Track tables to which we've sent uncommitted data
txTableRefs.add(origTableRef);
-// addDMLFence(table);
uncommittedPhysicalNames.add(table.getPhysicalName().getString());
// If we have indexes, wrap the HTable in a delegate HTable that
@@ -1231,10 +1214,6 @@ public class MutationState implements SQLCloseable {
startTransaction();
// Add back read fences
Set<TableRef> txTableRefs = txMutations.keySet();
-// for (TableRef tableRef : txTableRefs) {
-// PTable dataTable = tableRef.getTable();
-// addDMLFence(dataTable);
-// }
try {
// Only retry if an index was added
retryCommit = shouldResubmitTransaction(txTableRefs);
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java b/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
index 25ec0cf..2ae95bb 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
@@ -45,12 +45,6 @@ public class OmidTransactionContext implements PhoenixTransactionContext {
}
@Override
- public void markDMLFence(PTable table) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
public void join(PhoenixTransactionContext ctx) {
// TODO Auto-generated method stub
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java b/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
index 5b1a837..a13b5a6 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
@@ -87,14 +87,6 @@ public interface PhoenixTransactionContext {
throws SQLException;
/**
- * mark DML with table information for conflict detection of concurrent
- * DDL operation, as explained in [PHOENIX-2478], [TEPHRA-157] and [OMID-56].
- *
- * @param table the table that the DML command works on
- */
- public void markDMLFence(PTable table);
-
- /**
* Augment the current context with ctx modified keys
*
* @param ctx
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java b/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
index 447ce0e..5c4178d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
@@ -261,7 +261,6 @@ public class TephraTransactionContext implements PhoenixTransactionContext {
}
}
- @Override
public void markDMLFence(PTable table) {
byte[] logicalKey = table.getName().getBytes();
TransactionAware logicalTxAware = VisibilityFence.create(logicalKey);