This is an automated email from the ASF dual-hosted git repository.
zhangchen pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new b8fbc7c2a6 [fix](partial-update) transient rowset writer should not
trigger segcompaction when build rowset (#21751)
b8fbc7c2a6 is described below
commit b8fbc7c2a617ff5393a157f915344c48bb215e88
Author: zhannngchen <[email protected]>
AuthorDate: Wed Jul 12 21:47:07 2023 +0800
[fix](partial-update) transient rowset writer should not trigger
segcompaction when build rowset (#21751)
---
be/src/olap/rowset/beta_rowset_writer.cpp | 38 +++++++++++++++++--------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/be/src/olap/rowset/beta_rowset_writer.cpp
b/be/src/olap/rowset/beta_rowset_writer.cpp
index 6c7d5622a8..cfb9bbc5e4 100644
--- a/be/src/olap/rowset/beta_rowset_writer.cpp
+++ b/be/src/olap/rowset/beta_rowset_writer.cpp
@@ -557,24 +557,28 @@ RowsetSharedPtr BetaRowsetWriter::build() {
}
}
Status status;
- status = wait_flying_segcompaction();
- if (!status.ok()) {
- LOG(WARNING) << "segcompaction failed when build new rowset 1st wait,
res=" << status;
- return nullptr;
- }
- status = _segcompaction_ramaining_if_necessary();
- if (!status.ok()) {
- LOG(WARNING) << "segcompaction failed when build new rowset, res=" <<
status;
- return nullptr;
- }
- status = wait_flying_segcompaction();
- if (!status.ok()) {
- LOG(WARNING) << "segcompaction failed when build new rowset 2nd wait,
res=" << status;
- return nullptr;
- }
+ // if _segment_start_id is not zero, that means it's a transient rowset
writer for
+ // MoW partial update, don't need to do segment compaction.
+ if (_segment_start_id == 0) {
+ status = wait_flying_segcompaction();
+ if (!status.ok()) {
+ LOG(WARNING) << "segcompaction failed when build new rowset 1st
wait, res=" << status;
+ return nullptr;
+ }
+ status = _segcompaction_ramaining_if_necessary();
+ if (!status.ok()) {
+ LOG(WARNING) << "segcompaction failed when build new rowset, res="
<< status;
+ return nullptr;
+ }
+ status = wait_flying_segcompaction();
+ if (!status.ok()) {
+ LOG(WARNING) << "segcompaction failed when build new rowset 2nd
wait, res=" << status;
+ return nullptr;
+ }
- if (_segcompaction_worker.get_file_writer()) {
- _segcompaction_worker.get_file_writer()->close();
+ if (_segcompaction_worker.get_file_writer()) {
+ _segcompaction_worker.get_file_writer()->close();
+ }
}
// When building a rowset, we must ensure that the current _segment_writer
has been
// flushed, that is, the current _segment_writer is nullptr
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]