[phoenix] branch 4.x updated: PHOENIX-5728 : ExplainPlan with plan as attributes object

2020-12-06 Thread stoty
This is an automated email from the ASF dual-hosted git repository.

stoty pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/4.x by this push:
 new e281ec6  PHOENIX-5728 : ExplainPlan with plan as attributes object
e281ec6 is described below

commit e281ec67e49b1dc8b924a7faa5f6fc8529bce1b3
Author: Viraj Jasani 
AuthorDate: Mon Nov 30 23:02:12 2020 +0530

PHOENIX-5728 : ExplainPlan with plan as attributes object
---
 .../apache/phoenix/iterate/MockResultIterator.java |   7 +
 .../phoenix/schema/stats/BaseStatsCollectorIT.java | 129 +++--
 .../org/apache/phoenix/compile/DeleteCompiler.java |  25 +-
 .../org/apache/phoenix/compile/ExplainPlan.java|  19 +-
 .../phoenix/compile/ExplainPlanAttributes.java | 598 +
 .../apache/phoenix/compile/GroupByCompiler.java|  51 +-
 .../apache/phoenix/compile/ListJarsQueryPlan.java  |   7 +
 .../compile/MutatingParallelIteratorFactory.java   |   7 +
 .../org/apache/phoenix/compile/TraceQueryPlan.java |   7 +
 .../org/apache/phoenix/compile/UpsertCompiler.java |  28 +-
 .../org/apache/phoenix/execute/BaseQueryPlan.java  |  18 +-
 .../phoenix/execute/ClientAggregatePlan.java   |  34 +-
 .../org/apache/phoenix/execute/ClientScanPlan.java |  23 +-
 .../org/apache/phoenix/execute/CorrelatePlan.java  |  37 +-
 .../org/apache/phoenix/execute/HashJoinPlan.java   |   1 +
 .../execute/LiteralResultIterationPlan.java|   9 +-
 .../apache/phoenix/execute/SortMergeJoinPlan.java  |  44 +-
 .../phoenix/execute/TupleProjectionPlan.java   |  14 +-
 .../java/org/apache/phoenix/execute/UnionPlan.java |  12 +-
 .../apache/phoenix/execute/UnnestArrayPlan.java|  13 +-
 .../BaseGroupedAggregatingResultIterator.java  |   7 +
 .../apache/phoenix/iterate/BaseResultIterator.java |   7 +
 .../phoenix/iterate/BaseResultIterators.java   |  67 ++-
 .../phoenix/iterate/ChunkedResultIterator.java |  14 +
 .../ClientHashAggregatingResultIterator.java   |   8 +
 .../phoenix/iterate/ConcatResultIterator.java  |  10 +
 .../phoenix/iterate/CursorResultIterator.java  |  10 +
 .../phoenix/iterate/DelegateResultIterator.java|   8 +
 .../iterate/DistinctAggregatingResultIterator.java |  11 +
 .../org/apache/phoenix/iterate/ExplainTable.java   |  91 +++-
 .../iterate/FilterAggregatingResultIterator.java   |  20 +-
 .../phoenix/iterate/FilterResultIterator.java  |  20 +-
 .../phoenix/iterate/LimitingResultIterator.java|  22 +-
 .../phoenix/iterate/LookAheadResultIterator.java   |   8 +
 .../MaterializedComparableResultIterator.java  |   8 +
 .../iterate/MaterializedResultIterator.java|   7 +
 .../iterate/MergeSortRowKeyResultIterator.java |  20 +-
 .../iterate/MergeSortTopNResultIterator.java   |  30 +-
 .../phoenix/iterate/OffsetResultIterator.java  |  10 +
 .../phoenix/iterate/OrderedResultIterator.java |  20 +
 .../phoenix/iterate/PeekingResultIterator.java |   7 +
 .../org/apache/phoenix/iterate/ResultIterator.java |  24 +
 .../apache/phoenix/iterate/ResultIterators.java|  20 +
 .../phoenix/iterate/RoundRobinResultIterator.java  |  16 +
 .../RowKeyOrderedAggregateResultIterator.java  |  10 +
 .../phoenix/iterate/ScanningResultIterator.java|   7 +
 .../phoenix/iterate/SequenceResultIterator.java|  22 +-
 .../apache/phoenix/iterate/SerialIterators.java|   7 +
 .../phoenix/iterate/SpoolingResultIterator.java|  17 +
 .../phoenix/iterate/TableResultIterator.java   |   8 +
 .../iterate/TableSnapshotResultIterator.java   |  15 +-
 .../phoenix/iterate/UnionResultIterators.java  |  30 +-
 .../phoenix/iterate/ConcatResultIteratorTest.java  |   8 +
 .../iterate/MaterializedResultIterators.java   |   7 +
 .../iterate/MergeSortResultIteratorTest.java   |  17 +
 55 files changed, 1552 insertions(+), 144 deletions(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/iterate/MockResultIterator.java 
b/phoenix-core/src/it/java/org/apache/phoenix/iterate/MockResultIterator.java
index e842317..5b5b643 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/iterate/MockResultIterator.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/iterate/MockResultIterator.java
@@ -28,6 +28,8 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.phoenix.compile.ExplainPlanAttributes
+.ExplainPlanAttributesBuilder;
 import org.apache.phoenix.execute.TupleProjector;
 import org.apache.phoenix.schema.PTable;
 import org.apache.phoenix.schema.tuple.ResultTuple;
@@ -56,6 +58,11 @@ public class MockResultIterator implements 
PeekingResultIterator {
 public void explain(List planSteps) {}
 
 @Override
+public void explain(List planSteps,
+ExplainPlanAttributesBuilder explainPlanAttributesBuilder) {
+}
+
+

[phoenix] branch master updated: PHOENIX-5728 : ExplainPlan with plan as attributes object

2020-12-06 Thread stoty
This is an automated email from the ASF dual-hosted git repository.

stoty pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/master by this push:
 new 0106d96  PHOENIX-5728 : ExplainPlan with plan as attributes object
0106d96 is described below

commit 0106d96326380e70c6ab895a79ccfac5eafece89
Author: Viraj Jasani 
AuthorDate: Mon Nov 30 23:02:12 2020 +0530

PHOENIX-5728 : ExplainPlan with plan as attributes object
---
 .../apache/phoenix/iterate/MockResultIterator.java |   7 +
 .../phoenix/schema/stats/BaseStatsCollectorIT.java | 129 +++--
 .../org/apache/phoenix/compile/DeleteCompiler.java |  25 +-
 .../org/apache/phoenix/compile/ExplainPlan.java|  19 +-
 .../phoenix/compile/ExplainPlanAttributes.java | 598 +
 .../apache/phoenix/compile/GroupByCompiler.java|  51 +-
 .../apache/phoenix/compile/ListJarsQueryPlan.java  |   7 +
 .../compile/MutatingParallelIteratorFactory.java   |   7 +
 .../org/apache/phoenix/compile/TraceQueryPlan.java |   7 +
 .../org/apache/phoenix/compile/UpsertCompiler.java |  28 +-
 .../org/apache/phoenix/execute/BaseQueryPlan.java  |  18 +-
 .../phoenix/execute/ClientAggregatePlan.java   |  34 +-
 .../org/apache/phoenix/execute/ClientScanPlan.java |  23 +-
 .../org/apache/phoenix/execute/CorrelatePlan.java  |  37 +-
 .../org/apache/phoenix/execute/HashJoinPlan.java   |   1 +
 .../execute/LiteralResultIterationPlan.java|   9 +-
 .../apache/phoenix/execute/SortMergeJoinPlan.java  |  44 +-
 .../phoenix/execute/TupleProjectionPlan.java   |  14 +-
 .../java/org/apache/phoenix/execute/UnionPlan.java |  12 +-
 .../apache/phoenix/execute/UnnestArrayPlan.java|  13 +-
 .../BaseGroupedAggregatingResultIterator.java  |   7 +
 .../apache/phoenix/iterate/BaseResultIterator.java |   7 +
 .../phoenix/iterate/BaseResultIterators.java   |  67 ++-
 .../phoenix/iterate/ChunkedResultIterator.java |  14 +
 .../ClientHashAggregatingResultIterator.java   |   8 +
 .../phoenix/iterate/ConcatResultIterator.java  |  10 +
 .../phoenix/iterate/CursorResultIterator.java  |  10 +
 .../phoenix/iterate/DelegateResultIterator.java|   8 +
 .../iterate/DistinctAggregatingResultIterator.java |  11 +
 .../org/apache/phoenix/iterate/ExplainTable.java   |  91 +++-
 .../iterate/FilterAggregatingResultIterator.java   |  20 +-
 .../phoenix/iterate/FilterResultIterator.java  |  20 +-
 .../phoenix/iterate/LimitingResultIterator.java|  22 +-
 .../phoenix/iterate/LookAheadResultIterator.java   |   8 +
 .../MaterializedComparableResultIterator.java  |   8 +
 .../iterate/MaterializedResultIterator.java|   7 +
 .../iterate/MergeSortRowKeyResultIterator.java |  20 +-
 .../iterate/MergeSortTopNResultIterator.java   |  30 +-
 .../phoenix/iterate/OffsetResultIterator.java  |  10 +
 .../phoenix/iterate/OrderedResultIterator.java |  20 +
 .../phoenix/iterate/PeekingResultIterator.java |   7 +
 .../org/apache/phoenix/iterate/ResultIterator.java |  24 +
 .../apache/phoenix/iterate/ResultIterators.java|  20 +
 .../phoenix/iterate/RoundRobinResultIterator.java  |  16 +
 .../RowKeyOrderedAggregateResultIterator.java  |  10 +
 .../phoenix/iterate/ScanningResultIterator.java|   7 +
 .../phoenix/iterate/SequenceResultIterator.java|  22 +-
 .../apache/phoenix/iterate/SerialIterators.java|   7 +
 .../phoenix/iterate/SpoolingResultIterator.java|  17 +
 .../phoenix/iterate/TableResultIterator.java   |   8 +
 .../iterate/TableSnapshotResultIterator.java   |  15 +-
 .../phoenix/iterate/UnionResultIterators.java  |  30 +-
 .../phoenix/iterate/ConcatResultIteratorTest.java  |   8 +
 .../iterate/MaterializedResultIterators.java   |   7 +
 .../iterate/MergeSortResultIteratorTest.java   |  17 +
 55 files changed, 1552 insertions(+), 144 deletions(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/iterate/MockResultIterator.java 
b/phoenix-core/src/it/java/org/apache/phoenix/iterate/MockResultIterator.java
index e842317..5b5b643 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/iterate/MockResultIterator.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/iterate/MockResultIterator.java
@@ -28,6 +28,8 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.phoenix.compile.ExplainPlanAttributes
+.ExplainPlanAttributesBuilder;
 import org.apache.phoenix.execute.TupleProjector;
 import org.apache.phoenix.schema.PTable;
 import org.apache.phoenix.schema.tuple.ResultTuple;
@@ -56,6 +58,11 @@ public class MockResultIterator implements 
PeekingResultIterator {
 public void explain(List planSteps) {}
 
 @Override
+public void explain(List planSteps,
+ExplainPlanAttributesBuilder explainPlanAttributesBuilder) {
+}
+
+ 

[phoenix-omid] branch master updated (edce851 -> 0c7092a)

2020-12-06 Thread stoty
This is an automated email from the ASF dual-hosted git repository.

stoty pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/phoenix-omid.git.


from edce851  OMID-191 Fix missing executable permission because of 
MASSEMBLY-941
 add 0c7092a  OMID-192 fix missing jcommander dependency

No new revisions were added by this update.

Summary of changes:
 tso-server/pom.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)



[phoenix] branch 4.x updated: PHOENIX-6245 Update tephra dependency version to 0.16.0

2020-12-06 Thread stoty
This is an automated email from the ASF dual-hosted git repository.

stoty pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/4.x by this push:
 new 2b9455c  PHOENIX-6245 Update tephra dependency version to 0.16.0
2b9455c is described below

commit 2b9455c362e78b11361ac2b225d9b2f6b85c5434
Author: Istvan Toth 
AuthorDate: Fri Dec 4 06:46:47 2020 +0100

PHOENIX-6245 Update tephra dependency version to 0.16.0
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index b9d9bb6..f14d25e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,7 +121,7 @@
 2.1.2
 1.12.0
 8.1.7.v20120910
-0.15.0-incubating
+0.16.0
 1.0.2
 2.4.0
 2.11.8



Apache-Phoenix | master | HBase 2.3 | Build #136 FAILURE

2020-12-06 Thread Apache Jenkins Server

master branch  HBase 2.3  build #136 status FAILURE
Build #136 https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-mulitbranch/job/master/136/


Apache-Phoenix | master | HBase 2.2 | Build #136 FAILURE

2020-12-06 Thread Apache Jenkins Server

master branch  HBase 2.2  build #136 status FAILURE
Build #136 https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-mulitbranch/job/master/136/


Apache-Phoenix | master | HBase 2.1 | Build #136 FAILURE

2020-12-06 Thread Apache Jenkins Server

master branch  HBase 2.1  build #136 status FAILURE
Build #136 https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-mulitbranch/job/master/136/


[phoenix] branch master updated: PHOENIX-6245 Update tephra dependency version to 0.16.0

2020-12-06 Thread stoty
This is an automated email from the ASF dual-hosted git repository.

stoty pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/master by this push:
 new 995858f  PHOENIX-6245 Update tephra dependency version to 0.16.0
995858f is described below

commit 995858f223c6c23755ac83d1080952cf857ae4e0
Author: Istvan Toth 
AuthorDate: Fri Dec 4 06:49:53 2020 +0100

PHOENIX-6245 Update tephra dependency version to 0.16.0
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index dcc5991..19ac080 100644
--- a/pom.xml
+++ b/pom.xml
@@ -113,7 +113,7 @@
 3.2.2
 2.10.5
 2.1.2
-0.16.0-SNAPSHOT
+0.16.0
 1.0.2
 2.9.5
 1.0.4



[phoenix] branch master updated: PHOENIX-6082 : Avoid checkAndPut when altering properties for a table or view with column-encoding enabled

2020-12-06 Thread yanxinyi
This is an automated email from the ASF dual-hosted git repository.

yanxinyi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/master by this push:
 new 414ca16  PHOENIX-6082 : Avoid checkAndPut when altering properties for 
a table or view with column-encoding enabled
414ca16 is described below

commit 414ca163b3a1b3a7f2bce7257cb985f244fd515d
Author: Viraj Jasani 
AuthorDate: Sun Nov 22 18:58:41 2020 +0530

PHOENIX-6082 : Avoid checkAndPut when altering properties for a table or 
view with column-encoding enabled

Signed-off-by: Xinyi Yan 
---
 .../java/org/apache/phoenix/rpc/UpdateCacheIT.java | 121 +++--
 .../org/apache/phoenix/schema/MetaDataClient.java  |  17 ++-
 2 files changed, 124 insertions(+), 14 deletions(-)

diff --git a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
index 302089d..0f63390 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
@@ -19,7 +19,6 @@ package org.apache.phoenix.rpc;
 
 import static org.apache.phoenix.util.TestUtil.INDEX_DATA_SCHEMA;
 import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.fail;
@@ -37,30 +36,38 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Properties;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.phoenix.end2end.ParallelStatsDisabledIT;
+import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
 import org.apache.phoenix.jdbc.PhoenixEmbeddedDriver;
 import org.apache.phoenix.query.ConnectionQueryServices;
 import org.apache.phoenix.query.QueryConstants;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.schema.MetaDataClient;
 import org.apache.phoenix.schema.PName;
-import org.apache.phoenix.schema.PTable;
 import org.apache.phoenix.schema.types.PVarchar;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.phoenix.transaction.TransactionFactory;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.SchemaUtil;
 import org.apache.phoenix.util.TestUtil;
 import org.junit.Test;
 import org.mockito.Mockito;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Verifies the number of RPC calls from {@link MetaDataClient} updateCache() 
  * for transactional and non-transactional tables.
  */
 public class UpdateCacheIT extends ParallelStatsDisabledIT {
-   
-   public static final int NUM_MILLIS_IN_DAY = 8640;
+
+private static final Logger LOGGER =
+LoggerFactory.getLogger(UpdateCacheIT.class);
 
 private static void setupSystemTable(String fullTableName) throws 
SQLException {
 Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
@@ -104,10 +111,29 @@ public class UpdateCacheIT extends 
ParallelStatsDisabledIT {
 String tableName = generateUniqueName();
 String fullTableName = INDEX_DATA_SCHEMA + 
QueryConstants.NAME_SEPARATOR + tableName;
 Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+AtomicBoolean isSysMutexEmpty = new AtomicBoolean(true);
+ExecutorService executorService = Executors.newFixedThreadPool(5,
+new ThreadFactoryBuilder().setDaemon(true)
+.setNameFormat("check-sys-mutex-count-%d").build());
+for (int i = 0; i < 5; i++) {
+executorService.submit(new SystemMutexCaller(isSysMutexEmpty,
+props, INDEX_DATA_SCHEMA, tableName));
+}
+Thread.sleep(500);
 try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
 conn.createStatement().execute("create table " + fullTableName + 
TestUtil.TEST_TABLE_SCHEMA);
-conn.createStatement().execute(
-"alter table " + fullTableName + " SET 
UPDATE_CACHE_FREQUENCY=NEVER");
+conn.createStatement().execute("ALTER TABLE " + fullTableName
++ " SET UPDATE_CACHE_FREQUENCY=NEVER");
+}
+// make sure SYSTEM.MUTEX did not contain any record while
+// ALTER TABLE SET  query was being executed
+assertTrue("Mutex should not have been acquired", 
isSysMutexEmpty.get());
+try {
+executorService.shutdown();
+executorService.awaitTermination(5, TimeUnit.SECONDS);
+} catch (Exception e) {
+// no action needed
+LOGGER.debug("Error during ExecutorService 

[phoenix] branch 4.x updated: PHOENIX-6082 : Avoid checkAndPut when altering properties for a table or view with column-encoding enabled

2020-12-06 Thread yanxinyi
This is an automated email from the ASF dual-hosted git repository.

yanxinyi pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/4.x by this push:
 new b4cf108  PHOENIX-6082 : Avoid checkAndPut when altering properties for 
a table or view with column-encoding enabled
b4cf108 is described below

commit b4cf108fb4d242e7e74aa594ded9d2b971d9d9f0
Author: Viraj Jasani 
AuthorDate: Thu Nov 26 16:01:15 2020 +0530

PHOENIX-6082 : Avoid checkAndPut when altering properties for a table or 
view with column-encoding enabled

Signed-off-by: Xinyi Yan 
---
 .../java/org/apache/phoenix/rpc/UpdateCacheIT.java | 121 +++--
 .../org/apache/phoenix/schema/MetaDataClient.java  |  17 ++-
 2 files changed, 124 insertions(+), 14 deletions(-)

diff --git a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
index 302089d..cd04b4f 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
@@ -19,7 +19,6 @@ package org.apache.phoenix.rpc;
 
 import static org.apache.phoenix.util.TestUtil.INDEX_DATA_SCHEMA;
 import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.fail;
@@ -37,15 +36,20 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Properties;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
 
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.phoenix.end2end.ParallelStatsDisabledIT;
+import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
 import org.apache.phoenix.jdbc.PhoenixEmbeddedDriver;
 import org.apache.phoenix.query.ConnectionQueryServices;
 import org.apache.phoenix.query.QueryConstants;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.schema.MetaDataClient;
 import org.apache.phoenix.schema.PName;
-import org.apache.phoenix.schema.PTable;
 import org.apache.phoenix.schema.types.PVarchar;
 import org.apache.phoenix.transaction.TransactionFactory;
 import org.apache.phoenix.util.PropertiesUtil;
@@ -53,14 +57,17 @@ import org.apache.phoenix.util.SchemaUtil;
 import org.apache.phoenix.util.TestUtil;
 import org.junit.Test;
 import org.mockito.Mockito;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Verifies the number of RPC calls from {@link MetaDataClient} updateCache() 
  * for transactional and non-transactional tables.
  */
 public class UpdateCacheIT extends ParallelStatsDisabledIT {
-   
-   public static final int NUM_MILLIS_IN_DAY = 8640;
+
+private static final Logger LOGGER =
+LoggerFactory.getLogger(UpdateCacheIT.class);
 
 private static void setupSystemTable(String fullTableName) throws 
SQLException {
 Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
@@ -104,10 +111,29 @@ public class UpdateCacheIT extends 
ParallelStatsDisabledIT {
 String tableName = generateUniqueName();
 String fullTableName = INDEX_DATA_SCHEMA + 
QueryConstants.NAME_SEPARATOR + tableName;
 Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+AtomicBoolean isSysMutexEmpty = new AtomicBoolean(true);
+ExecutorService executorService = Executors.newFixedThreadPool(5,
+new ThreadFactoryBuilder().setDaemon(true)
+.setNameFormat("check-sys-mutex-count-%d").build());
+for (int i = 0; i < 5; i++) {
+executorService.submit(new SystemMutexCaller(isSysMutexEmpty,
+props, INDEX_DATA_SCHEMA, tableName));
+}
+Thread.sleep(500);
 try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
 conn.createStatement().execute("create table " + fullTableName + 
TestUtil.TEST_TABLE_SCHEMA);
-conn.createStatement().execute(
-"alter table " + fullTableName + " SET 
UPDATE_CACHE_FREQUENCY=NEVER");
+conn.createStatement().execute("ALTER TABLE " + fullTableName
++ " SET UPDATE_CACHE_FREQUENCY=NEVER");
+}
+// make sure SYSTEM.MUTEX did not contain any record while
+// ALTER TABLE SET  query was being executed
+assertTrue("Mutex should not have been acquired", 
isSysMutexEmpty.get());
+try {
+executorService.shutdown();
+executorService.awaitTermination(5, TimeUnit.SECONDS);
+} catch (Exception e) {
+// no action needed
+LOGGER.debug("Error during ExecutorService shutdown");
 }
  

svn commit: r1884174 - in /phoenix/site: publish/language/datatypes.html publish/language/functions.html publish/language/index.html publish/secondary_indexing.html source/src/site/markdown/secondary_

2020-12-06 Thread stoty
Author: stoty
Date: Mon Dec  7 05:56:25 2020
New Revision: 1884174

URL: http://svn.apache.org/viewvc?rev=1884174=rev
Log:
PHOENIX-6236 Document Strongly Consistent Global Indexes on website

Modified:
phoenix/site/publish/language/datatypes.html
phoenix/site/publish/language/functions.html
phoenix/site/publish/language/index.html
phoenix/site/publish/secondary_indexing.html
phoenix/site/source/src/site/markdown/secondary_indexing.md

Modified: phoenix/site/publish/language/datatypes.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/language/datatypes.html?rev=1884174=1884173=1884174=diff
==
--- phoenix/site/publish/language/datatypes.html (original)
+++ phoenix/site/publish/language/datatypes.html Mon Dec  7 05:56:25 2020
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/language/functions.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/language/functions.html?rev=1884174=1884173=1884174=diff
==
--- phoenix/site/publish/language/functions.html (original)
+++ phoenix/site/publish/language/functions.html Mon Dec  7 05:56:25 2020
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/language/index.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/language/index.html?rev=1884174=1884173=1884174=diff
==
--- phoenix/site/publish/language/index.html (original)
+++ phoenix/site/publish/language/index.html Mon Dec  7 05:56:25 2020
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/secondary_indexing.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/secondary_indexing.html?rev=1884174=1884173=1884174=diff
==
--- phoenix/site/publish/secondary_indexing.html (original)
+++ phoenix/site/publish/secondary_indexing.html Mon Dec  7 05:56:25 2020
@@ -1,7 +1,7 @@
 
 
 
 
@@ -195,7 +195,7 @@
  
  
  Global Indexes 
- Global indexing targets read heavy uses cases. With global indexes, 
all the performance penalties for indexes occur at write time. We intercept the 
data table updates on write (DELETE, 
UPSERT VALUES and UPSERT SELECT), build the index 
update and then sent any necessary updates to all interested index tables. At 
read time, Phoenix will select the index table to use that will produce the 
fastest query time and directly scan it just like any other HBase table. By 
default, unless hinted, an index will not be used for a query that references a 
column that isn’t part of the index. 
+ Global indexing targets read heavy uses cases. With global indexes, 
all the performance penalties for indexes occur at write time. We intercept the 
data table updates on write (DELETE, 
UPSERT VALUES and UPSERT SELECT), build the index 
update and then sent any necessary updates to all interested index tables. At 
read time, Phoenix will select the index table to use that will produce the 
fastest query time and directly scan it just like any other HBase table. An 
index will not be used for a query that references a column that isn’t part 
of the index. 
  
  
  Local Indexes 
@@ -224,7 +224,7 @@
   

ASYNC Index threshold 
-   As of 4.16, setting the phoenix.index.async.threshold property to a 
positive number will disallow synchronous index creation if the estimated 
indexed data size exceeds phoenix.index.async.threshold (in bytes). 
+   As of 4.16 (and 5.1), setting the phoenix.index.async.threshold property 
to a positive number will disallow synchronous index creation if the estimated 
indexed data size exceeds phoenix.index.async.threshold (in bytes). 

   
  
@@ -235,7 +235,7 @@
   SELECT v2 FROM my_table WHERE v1 = 'foo'
  
   
- There are three means of getting an index to be used in this case: 
+ There are two means of getting an index to be used in this case: 
   
Create a covered index by including v2 in the index: 
 
@@ -243,12 +243,6 @@
 CREATE INDEX my_index ON my_table (v1) INCLUDE (v2)
  
 This will cause the v2 column value to be copied into the index 
and kept in synch as it changes. This will obviously increase the size of the 
index. 
-   Hint the query to force it to use the index: 
-
-
-SELECT /*+ INDEX(my_table my_index) */ v2 FROM my_table WHERE v1 = 'foo'
- 
-This will cause each data row to be retrieved when the index is 
traversed to find the missing v2 column value. This hint should only be used if 
you know that the index has good selective (i.e. a small number of table rows 
have a value of ‘foo’ in this example), as otherwise you’ll get better 
performance by the default behavior of doing a full table scan. 
Create a local index: 
 
 
@@ -282,12 +276,16 @@ CREATE LOCAL INDEX my_index ON my_table
  However, since indexes are stored in separate tables than the