This is an automated email from the ASF dual-hosted git repository.
zhangchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 84413f33b8 [enhancement](merge-on-write) add skip_delete_bitmap
session variable for debug purpose (#17127)
84413f33b8 is described below
commit 84413f33b8d6d4ddc13635535ff0b9c0c3d6af51
Author: zhannngchen <[email protected]>
AuthorDate: Mon Feb 27 23:31:28 2023 +0800
[enhancement](merge-on-write) add skip_delete_bitmap session variable for
debug purpose (#17127)
---
be/src/runtime/runtime_state.h | 4 ++++
be/src/vec/exec/scan/new_olap_scanner.cpp | 2 +-
docs/en/docs/advanced/variables.md | 4 ++++
docs/zh-CN/docs/advanced/variables.md | 4 ++++
.../src/main/java/org/apache/doris/qe/SessionVariable.java | 10 ++++++++++
gensrc/thrift/PaloInternalService.thrift | 3 +++
6 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/be/src/runtime/runtime_state.h b/be/src/runtime/runtime_state.h
index fc0a7f088e..029c74d27d 100644
--- a/be/src/runtime/runtime_state.h
+++ b/be/src/runtime/runtime_state.h
@@ -295,6 +295,10 @@ public:
return _query_options.__isset.skip_delete_predicate &&
_query_options.skip_delete_predicate;
}
+ bool skip_delete_bitmap() const {
+ return _query_options.__isset.skip_delete_bitmap &&
_query_options.skip_delete_bitmap;
+ }
+
int partitioned_hash_join_rows_threshold() const {
if (!_query_options.__isset.partitioned_hash_join_rows_threshold) {
return 0;
diff --git a/be/src/vec/exec/scan/new_olap_scanner.cpp
b/be/src/vec/exec/scan/new_olap_scanner.cpp
index 272fd6b6cc..b5b82c00f7 100644
--- a/be/src/vec/exec/scan/new_olap_scanner.cpp
+++ b/be/src/vec/exec/scan/new_olap_scanner.cpp
@@ -329,7 +329,7 @@ Status NewOlapScanner::_init_tablet_reader_params(
_tablet_reader_params.use_page_cache = true;
}
- if (_tablet->enable_unique_key_merge_on_write()) {
+ if (_tablet->enable_unique_key_merge_on_write() &&
!_state->skip_delete_bitmap()) {
_tablet_reader_params.delete_bitmap =
&_tablet->tablet_meta()->delete_bitmap();
}
diff --git a/docs/en/docs/advanced/variables.md
b/docs/en/docs/advanced/variables.md
index c4d2e6f983..2ccd506c44 100644
--- a/docs/en/docs/advanced/variables.md
+++ b/docs/en/docs/advanced/variables.md
@@ -539,6 +539,10 @@ Translated with www.DeepL.com/Translator (free version)
For debugging purpose. In vectorized execution engine, in case of problems
of reading data, setting value to `true` will also read deleted data.
+* `skip_delete_bitmap`
+
+ For debugging purpose. In Unique Key MoW table, in case of problems of
reading data, setting value to `true` will also read deleted data.
+
* `default_password_lifetime`
Default password expiration time. The default value is 0, which means
no expiration. The unit is days. This parameter is only enabled if the user's
password expiration property has a value of DEFAULT. like:
diff --git a/docs/zh-CN/docs/advanced/variables.md
b/docs/zh-CN/docs/advanced/variables.md
index 98af616bab..4606376e75 100644
--- a/docs/zh-CN/docs/advanced/variables.md
+++ b/docs/zh-CN/docs/advanced/variables.md
@@ -527,6 +527,10 @@ SELECT /*+ SET_VAR(query_timeout = 1,
enable_partition_cache=true) */ sleep(3);
用于调试目的。在向量化执行引擎中,当发现读取表的数据结果有误的时候,把此变量的值设置为`true`,将会把被删除的数据当成正常数据读取。
+* `skip_delete_bitmap`
+
+ 用于调试目的。在Unique Key MoW表中,当发现读取表的数据结果有误的时候,把此变量的值设置为`true`,将会把被delete
bitmap标记删除的数据当成正常数据读取。
+
* `default_password_lifetime`
默认的密码过期时间。默认值为 0,即表示不过期。单位为天。该参数只有当用户的密码过期属性为 DEFAULT 值时,才启用。如:
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index 54eec46afa..cc11307e4a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -238,6 +238,8 @@ public class SessionVariable implements Serializable,
Writable {
public static final String SKIP_DELETE_SIGN = "skip_delete_sign";
+ public static final String SKIP_DELETE_BITMAP = "skip_delete_bitmap";
+
public static final String ENABLE_NEW_SHUFFLE_HASH_METHOD =
"enable_new_shuffle_hash_method";
public static final String ENABLE_PUSH_DOWN_NO_GROUP_AGG =
"enable_push_down_no_group_agg";
@@ -656,6 +658,12 @@ public class SessionVariable implements Serializable,
Writable {
@VariableMgr.VarAttr(name = SKIP_DELETE_SIGN)
public boolean skipDeleteSign = false;
+ /**
+ * For debug purpose, skip delete bitmap when reading data.
+ */
+ @VariableMgr.VarAttr(name = SKIP_DELETE_BITMAP)
+ public boolean skipDeleteBitmap = false;
+
// This variable is used to avoid FE fallback to the original parser. When
we execute SQL in regression tests
// for nereids, fallback will cause the Doris return the correct result
although the syntax is unsupported
// in nereids for some mistaken modification. You should set it on the
@@ -1583,6 +1591,8 @@ public class SessionVariable implements Serializable,
Writable {
tResult.setSkipDeletePredicate(skipDeletePredicate);
+ tResult.setSkipDeleteBitmap(skipDeleteBitmap);
+
tResult.setPartitionedHashJoinRowsThreshold(partitionedHashJoinRowsThreshold);
tResult.setPartitionedHashAggRowsThreshold(partitionedHashAggRowsThreshold);
diff --git a/gensrc/thrift/PaloInternalService.thrift
b/gensrc/thrift/PaloInternalService.thrift
index e2c962a228..ac8fcb111b 100644
--- a/gensrc/thrift/PaloInternalService.thrift
+++ b/gensrc/thrift/PaloInternalService.thrift
@@ -198,6 +198,9 @@ struct TQueryOptions {
61: optional i32 insert_timeout = 14400
62: optional i32 execution_timeout = 3600
+
+ // For debug purpose, skip delete bitmap when reading data
+ 63: optional bool skip_delete_bitmap = false
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]