Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Although after the first read LLAP cache stores data of tables that are not using the LazySimple serde, the stored data is then never used in the future subsequent queries, causing a full cache miss and re-read each time.
Problem is rooted in SerdeEncodedDataReader#cacheFileData is not taking care of creating an entry for the root/struct column of the table. The only cases this is taken care of are when a vectorized reader is used (e.g. LazySimpleSerde's LazySimpleDeserializeRead), where SerdeEncodedDataReader#processAsyncCacheData takes care of this.
This can be reproduced by either using a custom serde, like OpenCSV or using LazySimpleSerde, but turning off hive.llap.io.encode.vector.serde.enabled.