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/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new afcacc0a13 [bugfix](compaction) fix compaction trigger (#14981)
afcacc0a13 is described below

commit afcacc0a13bfa0b6386bd538a3c8edfdf30aa44b
Author: yixiutt <[email protected]>
AuthorDate: Sun Dec 11 18:26:00 2022 +0800

    [bugfix](compaction) fix compaction trigger (#14981)
    
    fix bug that when disable_auto_compaction=true but still trigger compaction
---
 be/src/agent/task_worker_pool.cpp           | 28 ++++++++++++++++------------
 be/src/olap/delta_writer.cpp                |  3 ++-
 be/src/vec/olap/vertical_merge_iterator.cpp |  3 ++-
 3 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/be/src/agent/task_worker_pool.cpp 
b/be/src/agent/task_worker_pool.cpp
index aa07c6834f..cbf3ffa0ee 100644
--- a/be/src/agent/task_worker_pool.cpp
+++ b/be/src/agent/task_worker_pool.cpp
@@ -726,19 +726,23 @@ void 
TaskWorkerPool::_publish_version_worker_thread_callback() {
                     .error(status);
             finish_task_request.__set_error_tablet_ids(error_tablet_ids);
         } else {
-            for (int i = 0; i < succ_tablet_ids.size(); i++) {
-                TabletSharedPtr tablet =
-                        
StorageEngine::instance()->tablet_manager()->get_tablet(succ_tablet_ids[i]);
-                if (tablet != nullptr) {
-                    tablet->publised_count++;
-                    if (tablet->publised_count % 10 == 0) {
-                        StorageEngine::instance()->submit_compaction_task(
-                                tablet, CompactionType::CUMULATIVE_COMPACTION);
-                        LOG(INFO) << "trigger compaction succ, tabletid:" << 
succ_tablet_ids[i]
-                                  << ", publised:" << tablet->publised_count;
+            if (!config::disable_auto_compaction) {
+                for (int i = 0; i < succ_tablet_ids.size(); i++) {
+                    TabletSharedPtr tablet =
+                            
StorageEngine::instance()->tablet_manager()->get_tablet(
+                                    succ_tablet_ids[i]);
+                    if (tablet != nullptr) {
+                        tablet->publised_count++;
+                        if (tablet->publised_count % 10 == 0) {
+                            StorageEngine::instance()->submit_compaction_task(
+                                    tablet, 
CompactionType::CUMULATIVE_COMPACTION);
+                            LOG(INFO) << "trigger compaction succ, tabletid:" 
<< succ_tablet_ids[i]
+                                      << ", publised:" << 
tablet->publised_count;
+                        }
+                    } else {
+                        LOG(WARNING)
+                                << "trigger compaction failed, tabletid:" << 
succ_tablet_ids[i];
                     }
-                } else {
-                    LOG(WARNING) << "trigger compaction failed, tabletid:" << 
succ_tablet_ids[i];
                 }
             }
             LOG_INFO("successfully publish version")
diff --git a/be/src/olap/delta_writer.cpp b/be/src/olap/delta_writer.cpp
index b0f2dc6f30..ad3f884797 100644
--- a/be/src/olap/delta_writer.cpp
+++ b/be/src/olap/delta_writer.cpp
@@ -111,7 +111,8 @@ Status DeltaWriter::init() {
     }
 
     // check tablet version number
-    if (_tablet->exceed_version_limit(config::max_tablet_version_num - 100)) {
+    if (!config::disable_auto_compaction &&
+        _tablet->exceed_version_limit(config::max_tablet_version_num - 100)) {
         //trigger compaction
         StorageEngine::instance()->submit_compaction_task(_tablet,
                                                           
CompactionType::CUMULATIVE_COMPACTION);
diff --git a/be/src/vec/olap/vertical_merge_iterator.cpp 
b/be/src/vec/olap/vertical_merge_iterator.cpp
index 1dd430b8ca..3a5bf46f62 100644
--- a/be/src/vec/olap/vertical_merge_iterator.cpp
+++ b/be/src/vec/olap/vertical_merge_iterator.cpp
@@ -281,6 +281,7 @@ Status VerticalMergeIteratorContext::init(const 
StorageReadOptions& opts) {
 
 Status VerticalMergeIteratorContext::advance() {
     // NOTE: we increase _index_in_block directly to valid one check
+    _is_same = false;
     do {
         _index_in_block++;
         if (LIKELY(_index_in_block < _block->rows())) {
@@ -543,4 +544,4 @@ std::shared_ptr<RowwiseIterator> 
new_vertical_mask_merge_iterator(
 }
 
 } // namespace vectorized
-} // namespace doris
\ No newline at end of file
+} // namespace doris


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to