Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -529,6 +529,20 @@ object VeloxConfig {
.booleanConf
.createWithDefault(false)

val VELOX_HASHMAP_ABANDON_BUILD_DUPHASH_MIN_ROWS =
buildConf("spark.gluten.velox.abandonbuild.noduphashminrows")
.experimental()
.doc("Experimental: abandon hashmap build if duplicated rows more than this number.")
.intConf
.createWithDefault(100000)

val VELOX_HASHMAP_ABANDON_BUILD_DUPHASH_MIN_PCT =
buildConf("spark.gluten.velox.abandonbuild.noduphashminpct")
.experimental()
.doc("Experimental: abandon hashmap build if duplicated rows are more than this percentile.")
.doubleConf
.createWithDefault(0)

val QUERY_TRACE_ENABLED = buildConf("spark.gluten.sql.columnar.backend.velox.queryTraceEnabled")
.doc("Enable query tracing flag.")
.booleanConf
Expand Down
6 changes: 6 additions & 0 deletions cpp/velox/compute/WholeStageResultIterator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,12 @@ std::unordered_map<std::string, std::string> WholeStageResultIterator::getQueryC
configs[velox::core::QueryConfig::kMaxSplitPreloadPerDriver] =
std::to_string(veloxCfg_->get<int32_t>(kVeloxSplitPreloadPerDriver, 2));

// hashtable build optimizations
configs[velox::core::QueryConfig::kAbandonBuildNoDupHashMinRows] =
std::to_string(veloxCfg_->get<int32_t>(kAbandonBuildNoDupHashMinRows, 100000));
configs[velox::core::QueryConfig::kAbandonBuildNoDupHashMinPct] =
std::to_string(veloxCfg_->get<int32_t>(kAbandonBuildNoDupHashMinPct, 0));

// Disable driver cpu time slicing.
configs[velox::core::QueryConfig::kDriverCpuTimeSliceLimitMs] = "0";

Expand Down
4 changes: 4 additions & 0 deletions cpp/velox/config/VeloxConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ const std::string kAbandonPartialAggregationMinPct =
const std::string kAbandonPartialAggregationMinRows =
"spark.gluten.sql.columnar.backend.velox.abandonPartialAggregationMinRows";

// hashmap build
const std::string kAbandonBuildNoDupHashMinRows = "spark.gluten.velox.abandonbuild.noduphashminrows";
const std::string kAbandonBuildNoDupHashMinPct = "spark.gluten.velox.abandonbuild.noduphashminpct";

// execution
const std::string kBloomFilterExpectedNumItems = "spark.gluten.sql.columnar.backend.velox.bloomFilter.expectedNumItems";
const std::string kBloomFilterNumBits = "spark.gluten.sql.columnar.backend.velox.bloomFilter.numBits";
Expand Down
Loading