phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-1259) Perform partial scan for ANALYZE when table salted or local index
Date Thu, 18 Sep 2014 07:53:33 GMT

    [ https://issues.apache.org/jira/browse/PHOENIX-1259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14138659#comment-14138659
] 

ASF GitHub Bot commented on PHOENIX-1259:
-----------------------------------------

Github user JamesRTaylor commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/12#discussion_r17713508
  
    --- Diff: phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java ---
    @@ -462,6 +471,59 @@ public MutationState createTable(CreateTableStatement statement,
byte[][] splits
             return connection.getQueryServices().updateData(plan);
         }
     
    +    public MutationState updateStatistics(UpdateStatisticsStatement updateStatisticsStmt)
throws SQLException {
    +        TableName tableNameNode = updateStatisticsStmt.getTable().getName();
    +        String tableName = tableNameNode.getTableName();
    +        // Check before updating the stats if we have reached the configured time to
reupdate the stats once again
    +        long minTimeForStatsUpdate = connection.getQueryServices().getProps()
    +                .getLong(StatisticsConstants.MIN_STATS_FREQ_UPDATION, StatisticsConstants.DEFAULT_STATS_FREQ_UPDATION);
    +        ColumnResolver resolver = FromCompiler.getResolver(updateStatisticsStmt, connection);
    +        PTable table = resolver.getTables().get(0).getTable();
    +        PName physicalName = table.getPhysicalName();
    +        byte[] tenantIdBytes = ByteUtil.EMPTY_BYTE_ARRAY;
    +        KeyRange analyzeRange = KeyRange.EVERYTHING_RANGE;
    +        if (connection.getTenantId() != null && table.getBucketNum() == null)
{
    +            tenantIdBytes = connection.getTenantId().getBytes();
    --- End diff --
    
    Then here if (table.getBucketNum() == null && table.getIndexType() != IndexType.LOCAL)
    We need to set tenantIdBytes correctly, even if salted or local. We just don't want to
setup a start/stop range.
    Once PHOENIX-1259 is fixed, we can remove this special case.


> Perform partial scan for ANALYZE when table salted or local index
> -----------------------------------------------------------------
>
>                 Key: PHOENIX-1259
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1259
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: ramkrishna.s.vasudevan
>
> If the table is salted or a local index, we can tweak our logic slightly for the start/stop
range of the scan we're doing to analyze the table. We should pass three new parameters over:
> - the start key/stop key for the scan
> - a boolean for isSalted (table.getBucketNum() != null)
> - a boolean for isLocalIndex (table.getIndexType() == IndexType.LOCAL)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message