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 2014/10/06 17:56:56 UTC

[2/7] git commit: Fix comparison for min time before doing an update stats and set small min in test

Fix comparison for min time before doing an update stats and set small min in test


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

Branch: refs/heads/3.0
Commit: 66a8808e0bb7f168c649bd2079b54e02542dbf03
Parents: b67b0c1
Author: James Taylor <jt...@salesforce.com>
Authored: Mon Oct 6 01:16:36 2014 -0700
Committer: James Taylor <jt...@salesforce.com>
Committed: Mon Oct 6 01:16:36 2014 -0700

----------------------------------------------------------------------
 .../apache/phoenix/end2end/ParallelIteratorsIT.java    |  5 +++--
 .../java/org/apache/phoenix/schema/MetaDataClient.java | 13 ++++++-------
 2 files changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/66a8808e/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelIteratorsIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelIteratorsIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelIteratorsIT.java
index d256641..8e0866b 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelIteratorsIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelIteratorsIT.java
@@ -65,6 +65,7 @@ public class ParallelIteratorsIT extends BaseHBaseManagedTimeIT {
         // Must update config before starting server
         props.put(QueryServices.HISTOGRAM_BYTE_DEPTH_ATTRIB, Long.toString(20));
         props.put(QueryServices.DROP_METADATA_ATTRIB, Boolean.toString(true));
+        props.put(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, Integer.toString(1));
         setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator()));
     }
 
@@ -83,7 +84,7 @@ public class ParallelIteratorsIT extends BaseHBaseManagedTimeIT {
         pstmt = conn.prepareStatement("SELECT COUNT(*) FROM STABLE").unwrap(PhoenixPreparedStatement.class);
         pstmt.execute();
         keyRanges = getAllSplits(conn);
-        assertEquals("Unexpected number of splits: " + keyRanges, 5, keyRanges.size());
+        assertEquals("Unexpected number of splits: " + keyRanges, 7, keyRanges.size());
         assertEquals(newKeyRange(KeyRange.UNBOUND, KMIN), keyRanges.get(0));
         assertEquals(newKeyRange(KMIN, K3), keyRanges.get(1));
         assertEquals(newKeyRange(K3, K4), keyRanges.get(2));
@@ -123,7 +124,7 @@ public class ParallelIteratorsIT extends BaseHBaseManagedTimeIT {
         stmt.execute();
         conn.prepareStatement("SELECT COUNT(*) FROM STABLE").executeQuery(); 
         keyRanges = getAllSplits(conn);
-        assertEquals(4, keyRanges.size());
+        assertEquals(7, keyRanges.size());
         upsert(conn, new byte[][] { KMIN2, K5, K12 });
         stmt = conn.prepareStatement("ANALYZE STABLE");
         stmt.execute();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/66a8808e/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 36d70b1..3d5f53c 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
@@ -48,7 +48,6 @@ import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.SALT_BUCKETS;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.SORT_ORDER;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.SYSTEM_CATALOG_SCHEMA;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.SYSTEM_CATALOG_TABLE;
-import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.SYSTEM_STATS_TABLE;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.TABLE_NAME;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.TABLE_SCHEM;
 import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.TABLE_SEQ_NUM;
@@ -474,7 +473,7 @@ public class MetaDataClient {
 
     public MutationState updateStatistics(UpdateStatisticsStatement updateStatisticsStmt) throws SQLException {
         // Check before updating the stats if we have reached the configured time to reupdate the stats once again
-        long minTimeForStatsUpdate = connection.getQueryServices().getProps()
+        long msMinBetweenUpdates = connection.getQueryServices().getProps()
                 .getLong(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, QueryServicesOptions.DEFAULT_STATS_UPDATE_FREQ_MS);
         ColumnResolver resolver = FromCompiler.getResolver(updateStatisticsStmt, connection);
         PTable table = resolver.getTables().get(0).getTable();
@@ -486,15 +485,15 @@ public class MetaDataClient {
         connection.getQueryServices().clearCacheForTable(tenantIdBytes,
                 Bytes.toBytes(SchemaUtil.getSchemaNameFromFullName(physicalName.getString())),
                 Bytes.toBytes(SchemaUtil.getTableNameFromFullName(physicalName.getString())), clientTS);
-        String query = "SELECT CURRENT_DATE(),"+ LAST_STATS_UPDATE_TIME + " FROM " + SYSTEM_CATALOG_SCHEMA
-                + "." + SYSTEM_STATS_TABLE + " WHERE " + PHYSICAL_NAME + "='" + physicalName.getString() + "' AND " + COLUMN_FAMILY
+        String query = "SELECT CURRENT_DATE(),"+ LAST_STATS_UPDATE_TIME + " FROM " + PhoenixDatabaseMetaData.SYSTEM_STATS_NAME
+                + " WHERE " + PHYSICAL_NAME + "='" + physicalName.getString() + "' AND " + COLUMN_FAMILY
                 + " IS NULL AND " + REGION_NAME + " IS NULL";
         ResultSet rs = connection.createStatement().executeQuery(query);
-        long lastUpdatedTime = 0;
+        long msSinceLastUpdate = Long.MAX_VALUE;
         if (rs.next() && rs.getDate(2) != null) {
-            lastUpdatedTime = rs.getDate(1).getTime() - rs.getDate(2).getTime();
+            msSinceLastUpdate = rs.getDate(1).getTime() - rs.getDate(2).getTime();
         }
-        if (minTimeForStatsUpdate  > lastUpdatedTime) {
+        if (msSinceLastUpdate >= msMinBetweenUpdates) {
             // Here create the select query.
             String countQuery = "SELECT /*+ NO_CACHE */ count(*) FROM " + table.getName().getString();
             PhoenixStatement statement = (PhoenixStatement) connection.createStatement();