Files
impala/testdata/workloads/functional-query/queries/QueryTest/hdfs-caching.test
Zoltan Borok-Nagy 999becd252 IMPALA-9055: Impala shouldn't set expiration to NEVER for cache directives.
In HdfsCachingUtil we set the expiration of cache directives to never.
This works well until the cache pool has max TTL set. Once max TTL is
set Impala will get an exception when it tries to add caching for tables
or partitions.

I changed HdfsCachingUtil to not set the expiration. This way the cache
directive inherits the expiration from the cache pool.

Testing
Added e2e test that creates a table in a cache pool that has max TTL.

Change-Id: I475b92704b19e337b2e62f766e5b978585bf6583
Reviewed-on: http://gerrit.cloudera.org:8080/14485
Reviewed-by: Csaba Ringhofer <csringhofer@cloudera.com>
Reviewed-by: Tim Armstrong <tarmstrong@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
2019-10-18 08:15:00 +00:00

393 lines
13 KiB
Plaintext

====
---- QUERY
use cachedb
====
---- QUERY
create table cached_tbl_nopart (i int) cached in 'testPool'
====
---- QUERY
insert into cached_tbl_nopart select 1
---- RESULTS
: 1
====
---- QUERY
select * from cached_tbl_nopart
---- RESULTS
1
---- TYPES
INT
====
---- QUERY
# Create a table 'like' cached_tbl_nopart
create table like_cached_tbl_nopart like cached_tbl_nopart
====
---- QUERY
# like_cached_tbl_nopart shouldn't inhert the caching settings
show table stats like_cached_tbl_nopart
---- RESULTS
-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
---- TYPES
BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Unpartitioned table shows correct caching
show table stats cached_tbl_nopart
---- RESULTS
-1,1,'2B',regex:.+B,'1','TEXT','false',regex:.*
---- TYPES
BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Unpartitioned table is no longer cached
alter table cached_tbl_nopart set uncached
====
---- QUERY
show table stats cached_tbl_nopart
---- RESULTS
-1,1,'2B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
---- TYPES
BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
drop table if exists cached_tbl_part
====
---- QUERY
create table cached_tbl_part (i int) partitioned by (j int) cached in 'testPool' with replication = 9
====
---- QUERY
# new partition should inherit the cached property
alter table cached_tbl_part add partition (j=0)
====
---- QUERY
# should be able to override the inherited cached property
alter table cached_tbl_part add partition (j=1) uncached
====
---- QUERY
alter table cached_tbl_part add partition (j=2) cached in 'testPool'
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'9','TEXT','false',regex:.*
'1',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'9','TEXT','false',regex:.*
'Total',-1,0,'0B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
drop table if exists cached_tbl_part
====
---- QUERY
create table cached_tbl_part (i int) partitioned by (j int) cached in 'testPool'
====
---- QUERY
# new partition should inherit the cached property
alter table cached_tbl_part add partition (j=0)
====
---- QUERY
# should be able to override the inherited cached property
alter table cached_tbl_part add partition (j=1) uncached
====
---- QUERY
alter table cached_tbl_part add partition (j=2) cached in 'testPool'
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'1',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'Total',-1,0,'0B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# uncache one of the partitions
alter table cached_tbl_part partition (j=2) set uncached
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'1',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'2',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'Total',-1,0,'0B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Can uncache the same partition twice without an error.
alter table cached_tbl_part partition (j=2) set uncached
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'1',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'2',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'Total',-1,0,'0B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# mark an uncached partition as cached
alter table cached_tbl_part partition (j=1) set cached in 'testPool'
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'2',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'Total',-1,0,'0B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# dynamic partition insert inherits table properties
insert into cached_tbl_part partition(j) values(3, 3), (4, 4);
---- RESULTS
j=3/: 1
j=4/: 1
====
---- QUERY
# Modify partition cache replication
alter table cached_tbl_part partition (j=3) set cached in 'testPool' with replication = 4
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'2',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'4','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'1','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Set uncached clears all cache requests
alter table cached_tbl_part set uncached
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'1',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'2',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'3',-1,1,'2B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'4',-1,1,'2B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Can call set uncached multiple times on the same partitioned table
alter table cached_tbl_part set uncached
====
---- QUERY
# Set cached caches all partitions
alter table cached_tbl_part set cached in 'testPool'
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'1','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'1','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Can call set cached multiple times on the same partitioned table.
alter table cached_tbl_part set cached in 'testPool'
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'1','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'1','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Modify partition cache replication in preparation for table level alteration
alter table cached_tbl_part partition (j=3) set cached in 'testPool' with replication = 4
====
---- QUERY
# Uncache a partition in preparation for table level alteration
alter table cached_tbl_part partition (j=1) set uncached
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'1',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'4','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'1','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Set replication factor for all partitions regardless of their current state
alter table cached_tbl_part set cached in 'testPool' with replication = 8
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Add partition with different replication
alter table cached_tbl_part add partition(j=5) cached in 'testPool' with replication = 3
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'5',-1,0,'0B',regex:.+B,'3','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Change replication for a partition
alter table cached_tbl_part partition(j=2) set cached in 'testPool' with replication = 3
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'3','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'5',-1,0,'0B',regex:.+B,'3','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Add partition with inherited replication from table
alter table cached_tbl_part add partition(j=6) cached in 'testPool'
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'3','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'5',-1,0,'0B',regex:.+B,'3','TEXT','false',regex:.*
'6',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Add a partition with uncacheable location and it should fail
alter table cached_tbl_part add partition(j=7)
location 'file://$IMPALA_HOME/testdata/data/cached_tbl_part'
---- CATCH
Location 'file:$IMPALA_HOME/testdata/data/cached_tbl_part' cannot be cached. Please retry without caching: ALTER TABLE cachedb.cached_tbl_part ADD PARTITION ... UNCACHED
====
---- QUERY
# Add a partition with uncacheable location and it should succeed with UNCACHED specified
alter table cached_tbl_part add partition(j=7)
location 'file://$IMPALA_HOME/testdata/data/cache_tbl_part' uncached
====
---- QUERY
show partitions cached_tbl_part
---- RESULTS
'0',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'2',-1,0,'0B',regex:.+B,'3','TEXT','false',regex:.*
'3',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'4',-1,1,'2B',regex:.+B,'8','TEXT','false',regex:.*
'5',-1,0,'0B',regex:.+B,'3','TEXT','false',regex:.*
'6',-1,0,'0B',regex:.+B,'8','TEXT','false',regex:.*
'7',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'Total',-1,2,'4B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# Create a table which resides on the local file system
create table uncached_tbl_local(i int)
location 'file://$IMPALA_HOME/testdata/data/uncached_tbl_local'
====
---- QUERY
# Turning on caching should fail for this table
alter table uncached_tbl_local set cached in 'testPool'
---- CATCH
Table cachedb.uncached_tbl_local cannot be cached. Please check if the table or partitions are on a filesystem which supports caching.
====
---- QUERY
# Create a new table on HDFS
create table cached_tbl_local(i int) partitioned by (j int)
====
---- QUERY
# Add a partition which resides on the local filesystem
alter table cached_tbl_local add partition(j=0)
location 'file://$IMPALA_HOME/testdata/data/cached_local_part'
====
---- QUERY
# Turning on caching for this new partition should fail
alter table cached_tbl_local partition(j=0) set cached in 'testPool'
---- CATCH
Partition(s) (j=0) cannot be cached. Please check if the table or partitions are on a filesystem which supports caching.
====
---- QUERY
# Turning on caching should also fail for this table
alter table cached_tbl_local set cached in 'testPool'
---- CATCH
Table cachedb.cached_tbl_local cannot be cached. Please check if the table or partitions are on a filesystem which supports caching.
====
---- QUERY
# Adding a cacheable partition should be allowed even if other partitions are not cacheable.
alter table cached_tbl_local add partition(j=1) cached in 'testPool'
====
---- QUERY
# Turning on caching should still fail for this table
alter table cached_tbl_local set cached in 'testPool'
---- CATCH
Table cachedb.cached_tbl_local cannot be cached. Please check if the table or partitions are on a filesystem which supports caching.
====
---- QUERY
show partitions cached_tbl_local;
---- RESULTS
'0',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'1',-1,0,'0B',regex:.+B,'1','TEXT','false',regex:.*
'Total',-1,0,'0B',regex:.+B,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
# IMPALA-9055: Cannot cache table in pool with max TTL.
create table cached_tbl_ttl (i int) cached in 'testPoolWithTtl';
alter table cached_tbl_ttl set cached in 'testPoolWithTtl' with replication = 4;
====