This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push: new 22439cb6a6 [Improvement] [compaction]Enable vectorized compaction by default (#9383) 22439cb6a6 is described below commit 22439cb6a65d316d605afc99f5c30bcac3ad6c2d Author: Gabriel <gabrielleeb...@gmail.com> AuthorDate: Sat May 7 08:46:35 2022 +0800 [Improvement] [compaction]Enable vectorized compaction by default (#9383) --- be/src/common/config.h | 2 +- be/src/olap/compaction.cpp | 15 +++++++++++++-- be/src/olap/compaction.h | 3 +++ docs/en/admin-manual/config/be-config.md | 2 +- docs/zh-CN/admin-manual/config/be-config.md | 2 +- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/be/src/common/config.h b/be/src/common/config.h index ac8ddd8ff2..28714c6b24 100644 --- a/be/src/common/config.h +++ b/be/src/common/config.h @@ -241,7 +241,7 @@ CONF_Bool(enable_low_cardinality_optimize, "false"); // whether disable automatic compaction task CONF_mBool(disable_auto_compaction, "false"); // whether enable vectorized compaction -CONF_Bool(enable_vectorized_compaction, "false"); +CONF_Bool(enable_vectorized_compaction, "true"); // check the configuration of auto compaction in seconds when auto compaction disabled CONF_mInt32(check_auto_compaction_interval_seconds, "5"); diff --git a/be/src/olap/compaction.cpp b/be/src/olap/compaction.cpp index a4eb59aaa7..b885162b76 100644 --- a/be/src/olap/compaction.cpp +++ b/be/src/olap/compaction.cpp @@ -87,14 +87,15 @@ Status Compaction::do_compaction_impl(int64_t permits) { // The test results show that merger is low-memory-footprint, there is no need to tracker its mem pool Merger::Statistics stats; Status res; - if (config::enable_vectorized_compaction) { + auto use_vectorized_compaction = _should_use_vectorized_compaction(); + if (use_vectorized_compaction) { res = Merger::vmerge_rowsets(_tablet, compaction_type(), _input_rs_readers, _output_rs_writer.get(), &stats); } else { res = Merger::merge_rowsets(_tablet, compaction_type(), _input_rs_readers, _output_rs_writer.get(), &stats); } - string merge_type = config::enable_vectorized_compaction ? "v" : ""; + string merge_type = use_vectorized_compaction ? "v" : ""; if (!res.ok()) { LOG(WARNING) << "fail to do " << merge_type << compaction_name() << ". res=" << res << ", tablet=" << _tablet->full_name() @@ -291,6 +292,16 @@ int64_t Compaction::_get_input_num_rows_from_seg_grps() { return num_rows; } +bool Compaction::_should_use_vectorized_compaction() { + auto cols = _tablet->tablet_schema().columns(); + for (auto it = cols.begin(); it != cols.end(); it++) { + if ((*it).type() == FieldType::OLAP_FIELD_TYPE_STRING) { + return false; + } + } + return config::enable_vectorized_compaction; +} + int64_t Compaction::get_compaction_permits() { int64_t permits = 0; for (auto rowset : _input_rowsets) { diff --git a/be/src/olap/compaction.h b/be/src/olap/compaction.h index 240821b25f..27c33dcc5a 100644 --- a/be/src/olap/compaction.h +++ b/be/src/olap/compaction.h @@ -78,6 +78,9 @@ private: // return -1 if these are not alpha rowsets. int64_t _get_input_num_rows_from_seg_grps(); + // check whether we should enable vectorized compaction. + bool _should_use_vectorized_compaction(); + protected: // the root tracker for this compaction std::shared_ptr<MemTracker> _mem_tracker; diff --git a/docs/en/admin-manual/config/be-config.md b/docs/en/admin-manual/config/be-config.md index cb5464f4c0..c8a2830d7b 100644 --- a/docs/en/admin-manual/config/be-config.md +++ b/docs/en/admin-manual/config/be-config.md @@ -113,7 +113,7 @@ Minimal interval (ms) to generate compaction tasks ### `enable_vectorized_compaction` -Default: false +Default: true Whether to enable vectorized compaction diff --git a/docs/zh-CN/admin-manual/config/be-config.md b/docs/zh-CN/admin-manual/config/be-config.md index 53adf6da18..2d187298fd 100644 --- a/docs/zh-CN/admin-manual/config/be-config.md +++ b/docs/zh-CN/admin-manual/config/be-config.md @@ -109,7 +109,7 @@ BE 的配置项有两种方式进行配置: ### `enable_vectorized_compaction` -默认值:false +默认值:true 是否开启向量化compaction --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org