mirror of
https://github.com/apache/impala.git
synced 2025-12-19 18:12:08 -05:00
This is a preparatory change for cost-based placement for TupleCacheNodes. It reorders planning so that the processing cost and filtered cardinality are calculated before running the TupleCachePlanner. This computes the processing cost when enable_tuple_cache=true. It also displays the cost information in the explain plan output when enable_tuple_cache=true. This does not impact the adjustment of fragment parallelism, which continues to be controlled by the compute_processing_cost option. This uses the processing cost to calculate a cumulative processing cost in the TupleCacheInfo. This is all of the processing cost below this point including other fragments. This is an indicator of how much processing a cache hit could avoid. This does not accumulate the cost when merging the TupleCacheInfo due to a runtime filter, as that cost is not actually being avoided. This also computes the estimated serialized size for the TupleCacheNode based on the filtered cardinality and the row size. Testing: - Ran a core job Change-Id: If78f5d002b0e079eef1eece612f0d4fefde545c7 Reviewed-on: http://gerrit.cloudera.org:8080/23164 Reviewed-by: Yida Wu <wydbaggio000@gmail.com> Reviewed-by: Michael Smith <michael.smith@cloudera.com> Tested-by: Michael Smith <michael.smith@cloudera.com>