You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Mujtaba Chohan (JIRA)" <ji...@apache.org> on 2017/10/13 21:08:00 UTC

[jira] [Created] (PHOENIX-4287) Incorrect aggregate query results when stats are disable for parallelization

Mujtaba Chohan created PHOENIX-4287:
---------------------------------------

             Summary: Incorrect aggregate query results when stats are disable for parallelization
                 Key: PHOENIX-4287
                 URL: https://issues.apache.org/jira/browse/PHOENIX-4287
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 4.12.0
         Environment: HBase 1.3.1
            Reporter: Mujtaba Chohan


With {{phoenix.use.stats.parallelization}} set to {{false}}, aggregate query returns incorrect results when stats are available.

With local index and stats disabled for parallelization:
{noformat}
explain select count(*) from TABLE_T;
+-------------------------------------------------------------------------------------------------------+-----------------+----------------+-----------+
|                                                 PLAN                                                  | EST_BYTES_READ  | EST_ROWS_READ  |  EST_INFO |
+-------------------------------------------------------------------------------------------------------+-----------------+----------------+-----------+
| CLIENT 0-CHUNK 332170 ROWS 625043899 BYTES PARALLEL 0-WAY RANGE SCAN OVER TABLE_T [1]  | 625043899       | 332170         | 150792825 |
|     SERVER FILTER BY FIRST KEY ONLY                                                                   | 625043899       | 332170         | 150792825 |
|     SERVER AGGREGATE INTO SINGLE ROW                                                                  | 625043899       | 332170         | 150792825 |
+-------------------------------------------------------------------------------------------------------+-----------------+----------------+-----------+

select count(*) from TABLE_T;
+-----------+
| COUNT(1)  |
+-----------+
| 0         |
+-----------+
{noformat}

Using data table
{noformat}
explain select /*+NO_INDEX*/ count(*) from TABLE_T;
+--------------------------------------------------------------------------------------------------+-----------------+----------------+----------------+
|                                               PLAN                                               | EST_BYTES_READ  | EST_ROWS_READ  |  EST_INFO_TS   |
+--------------------------------------------------------------------------------------------------+-----------------+----------------+----------------+
| CLIENT 2-CHUNK 332151 ROWS 438492470 BYTES PARALLEL 1-WAY FULL SCAN OVER TABLE_T  | 438492470       | 332151         | 1507928257617  |
|     SERVER FILTER BY FIRST KEY ONLY                                                              | 438492470       | 332151         | 1507928257617  |
|     SERVER AGGREGATE INTO SINGLE ROW                                                             | 438492470       | 332151         | 1507928257617  |
+--------------------------------------------------------------------------------------------------+-----------------+----------------+----------------+

select /*+NO_INDEX*/ count(*) from TABLE_T;
+-----------+
| COUNT(1)  |
+-----------+
| 14        |
+-----------+
{noformat}

Without stats available, results are correct:
{noformat}
explain select /*+NO_INDEX*/ count(*) from TABLE_T;
+----------------------------------------------------------------------+-----------------+----------------+--------------+
|                                 PLAN                                 | EST_BYTES_READ  | EST_ROWS_READ  | EST_INFO_TS  |
+----------------------------------------------------------------------+-----------------+----------------+--------------+
| CLIENT 2-CHUNK PARALLEL 1-WAY FULL SCAN OVER TABLE_T  | null            | null           | null         |
|     SERVER FILTER BY FIRST KEY ONLY                                  | null            | null           | null         |
|     SERVER AGGREGATE INTO SINGLE ROW                                 | null            | null           | null         |
+----------------------------------------------------------------------+-----------------+----------------+--------------+
select /*+NO_INDEX*/ count(*) from TABLE_T;
+-----------+
| COUNT(1)  |
+-----------+
| 333327    |
+-----------+
{noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)