Github user amansinha100 commented on a diff in the pull request:
https://github.com/apache/drill/pull/185#discussion_r40981727
--- Diff:
contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveScan.java
---
@@ -319,16 +319,12 @@ public ScanStats getScanStats() {
estRowCount = data/1024;
}
- // Hive's native reader is neither memory efficient nor fast. If the
rowcount is below
- // HIVE_SERDE_SCAN_OVERHEAD_FACTOR, make sure it is at least
HIVE_SERDE_SCAN_OVERHEAD_FACTOR to enable the planner
- // to choose HiveDrillNativeParquetScan. Due to the project on top
of HiveDrillNativeParquetScan, we end up
- // choosing the HiveScan instead of HiveDrillNativeParquetScan if
the cost is too low.
- if (estRowCount <= HIVE_SERDE_SCAN_OVERHEAD_FACTOR) {
- estRowCount = HIVE_SERDE_SCAN_OVERHEAD_FACTOR;
- }
+ // Hive's native reader is neither memory efficient nor fast.
Increase the CPU cost
+ // by a factor to let the planner choose HiveDrillNativeScan over
HiveScan with SerDes.
+ float cpuCost = 1 * HIVE_SERDE_SCAN_OVERHEAD_FACTOR;
--- End diff --
I am thinking this cost should include the number of columns as
well...suppose there are lots of columns(e.g 500), we want both types of plans
to be equally penalized.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---