Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 e81a4cc8f -> d2c5761a3


PHOENIX-1261 Addendum to set the async attribute on the scan


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

Branch: refs/heads/4.x-HBase-0.98
Commit: d2c5761a3ee370c19e3164c277c19ea08fe2faef
Parents: e81a4cc
Author: Samarth <samarth.j...@salesforce.com>
Authored: Fri Jan 15 16:18:09 2016 -0800
Committer: Samarth <samarth.j...@salesforce.com>
Committed: Fri Jan 15 16:18:09 2016 -0800

----------------------------------------------------------------------
 .../org/apache/phoenix/schema/MetaDataClient.java     | 13 ++++++++++---
 .../schema/stats/StatisticsCollectionRunTracker.java  | 14 ++++++--------
 2 files changed, 16 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/d2c5761a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
index decc944..995be86 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
@@ -21,6 +21,8 @@ import static 
com.google.common.collect.Lists.newArrayListWithExpectedSize;
 import static com.google.common.collect.Sets.newLinkedHashSet;
 import static com.google.common.collect.Sets.newLinkedHashSetWithExpectedSize;
 import static org.apache.hadoop.hbase.HColumnDescriptor.TTL;
+import static 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver.ANALYZE_TABLE;
+import static 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver.RUN_UPDATE_STATS_ASYNC;
 import static 
org.apache.phoenix.exception.SQLExceptionCode.INSUFFICIENT_MULTI_TENANT_COLUMNS;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.ARG_POSITION;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.ARRAY_SIZE;
@@ -81,9 +83,12 @@ import static 
org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.VIEW_TYPE;
 import static 
org.apache.phoenix.query.QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT;
 import static org.apache.phoenix.query.QueryServices.DROP_METADATA_ATTRIB;
 import static 
org.apache.phoenix.query.QueryServicesOptions.DEFAULT_DROP_METADATA;
+import static 
org.apache.phoenix.query.QueryServicesOptions.DEFAULT_RUN_UPDATE_STATS_ASYNC;
 import static org.apache.phoenix.schema.PTable.ViewType.MAPPED;
 import static org.apache.phoenix.schema.PTableType.TABLE;
 import static org.apache.phoenix.schema.PTableType.VIEW;
+import static org.apache.phoenix.schema.types.PDataType.FALSE_BYTES;
+import static org.apache.phoenix.schema.types.PDataType.TRUE_BYTES;
 
 import java.io.IOException;
 import java.sql.Connection;
@@ -108,6 +113,8 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 
+import co.cask.tephra.TxConstants;
+
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HConstants;
@@ -210,8 +217,6 @@ import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import com.google.common.primitives.Ints;
 
-import co.cask.tephra.TxConstants;
-
 public class MetaDataClient {
     private static final Logger logger = 
LoggerFactory.getLogger(MetaDataClient.class);
 
@@ -949,7 +954,9 @@ public class MetaDataClient {
             MutationPlan plan = 
compiler.compile(Collections.singletonList(tableRef), null, null, null, 
clientTimeStamp);
             Scan scan = plan.getContext().getScan();
             scan.setCacheBlocks(false);
-            scan.setAttribute(BaseScannerRegionObserver.ANALYZE_TABLE, 
PDataType.TRUE_BYTES);
+            scan.setAttribute(ANALYZE_TABLE, TRUE_BYTES);
+            boolean runUpdateStatsAsync = 
props.getBoolean(RUN_UPDATE_STATS_ASYNC, DEFAULT_RUN_UPDATE_STATS_ASYNC);
+            scan.setAttribute(RUN_UPDATE_STATS_ASYNC, runUpdateStatsAsync ? 
TRUE_BYTES : FALSE_BYTES);
             if (statsProps != null) {
                 Object gp_width = 
statsProps.get(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB);
                 if (gp_width != null) {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d2c5761a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollectionRunTracker.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollectionRunTracker.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollectionRunTracker.java
index 5f6be3f..4ed3325 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollectionRunTracker.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsCollectionRunTracker.java
@@ -31,6 +31,8 @@ import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.query.QueryServicesOptions;
 
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
+
 /**
  * Singleton that is used to track state associated with regions undergoing 
stats collection at the
  * region server's JVM level.
@@ -64,14 +66,10 @@ public class StatisticsCollectionRunTracker {
         int poolSize =
                 config.getInt(QueryServices.STATS_SERVER_POOL_SIZE,
                     QueryServicesOptions.DEFAULT_STATS_POOL_SIZE);
-        executor = Executors.newFixedThreadPool(poolSize, new ThreadFactory() {
-            @Override
-            public Thread newThread(Runnable r) {
-                Thread t = Executors.defaultThreadFactory().newThread(r);
-                t.setDaemon(true);
-                return t;
-            }
-        });
+        ThreadFactoryBuilder builder =
+                new ThreadFactoryBuilder().setDaemon(true).setNameFormat(
+                    "phoenix-update-statistics-%s");
+        executor = Executors.newFixedThreadPool(poolSize, builder.build());
     }
 
     /**

Reply via email to