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 <[email protected]> Authored: Tue May 9 12:12:09 2017 +0300 Committer: Ohad Shacham <[email protected]> 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);
