Tim Armstrong created IMPALA-9744:
-------------------------------------

             Summary: Treat corrupt table stats as 
                 Key: IMPALA-9744
                 URL: https://issues.apache.org/jira/browse/IMPALA-9744
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
            Reporter: Tim Armstrong


We currently detect corrupt stats (0 rows but data in partition) but only flag 
it. The 0 row count is used for planning. I ran into a scenario where this lead 
to an extremely pathological plan - the 0 row count lead to flipping a nested 
loop join to put the big table on the build side and running out of memory.

I propose doing something very conservative to avoid this scenario: if we see 
corrupt stats in any partition, and the row count is computed to be zero, 
ignore the row count and treat it the same as missing stats in the planner.

Here's an example where we end up with corrupt stats. Warning: this can remove 
the data file from your alltypes type, I recommend copying the file to a 
different location before running this.
{noformat}
# In beeline against HS2
!connect jdbc:hive2://localhost:11050 hive org.apache.hive.jdbc.HiveDrive
set hive.stats.autogather=true;
CREATE TABLE `alltypes_insert_only`(
   `id` int COMMENT 'Add a comment',
   `bool_col` boolean,
   `tinyint_col` tinyint,
   `smallint_col` smallint,
   `int_col` int,
   `bigint_col` bigint,
   `float_col` float,
   `double_col` double,
   `date_string_col` string,
   `string_col` string,
   `timestamp_col` timestamp)
 PARTITIONED BY (
   `year` int,
   `month` int)
 STORED AS PARQUET
 TBLPROPERTIES ("transactional"="true", 
"transactional_properties"="insert_only");
load data inpath 
'hdfs://172.19.0.1:20500/test-warehouse/alltypes_parquet/year=2009/month=1/154473eafa08ea0e-f9d70e7100000004_1040780996_data.0.parq'
 into table alltypes_insert_only partition (year=2009,month=9);

# In Impala
show table stats alltypes_insert_only;
+-------+-------+-------+--------+--------+--------------+-------------------+---------+-------------------+----------------------------------------------------------------------------------------+
| year  | month | #Rows | #Files | Size   | Bytes Cached | Cache Replication | 
Format  | Incremental stats | Location                                          
                                     |
+-------+-------+-------+--------+--------+--------------+-------------------+---------+-------------------+----------------------------------------------------------------------------------------+
| 2009  | 10    | 0     | 1      | 7.75KB | NOT CACHED   | NOT CACHED        | 
PARQUET | false             | 
hdfs://172.19.0.1:20500/test-warehouse/managed/alltypes_insert_only/year=2009/month=10
 |
| Total |       | -1    | 1      | 7.75KB | 0B           |                   |  
       |                   |                                                    
                                    |
+-------+-------+-------+--------+--------+--------------+-------------------+---------+-------------------+----------------------------------------------------------------------------------------+
{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to