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 418ea0a24e [fix](merge-on-write) fix that failed to 
capture_consistent_rowsets when full clone (#18346)
418ea0a24e is described below

commit 418ea0a24e59171aa8742425e05925e0c941968b
Author: Xin Liao <[email protected]>
AuthorDate: Tue Apr 4 10:39:28 2023 +0800

    [fix](merge-on-write) fix that failed to capture_consistent_rowsets when 
full clone (#18346)
    
    When full clone, if the max version of the local table is less than or 
equal to the max version of the clone table, there is no need to calculate the 
delete bitmap again.
---
 be/src/olap/tablet.cpp | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/be/src/olap/tablet.cpp b/be/src/olap/tablet.cpp
index 4d45672219..4d4538a8aa 100644
--- a/be/src/olap/tablet.cpp
+++ b/be/src/olap/tablet.cpp
@@ -308,14 +308,17 @@ Status Tablet::revise_tablet_meta(const 
std::vector<RowsetSharedPtr>& to_add,
             CHECK_EQ(to_add_min_version, 0) << "to_add_min_version is: " << 
to_add_min_version;
             calc_delete_bitmap_ver = Version(to_add_max_version + 1, 
max_version().second);
         }
-        Status res =
-                capture_consistent_rowsets(calc_delete_bitmap_ver, 
&calc_delete_bitmap_rowsets);
-        // Because the data in memory has been changed, can't return an error.
-        CHECK(res.ok()) << "fail to capture_consistent_rowsets, res: " << res;
-
-        for (auto rs : calc_delete_bitmap_rowsets) {
-            res = update_delete_bitmap_without_lock(rs);
-            CHECK(res.ok()) << "fail to update_delete_bitmap_without_lock, 
res: " << res;
+
+        if (calc_delete_bitmap_ver.first <= calc_delete_bitmap_ver.second) {
+            Status res =
+                    capture_consistent_rowsets(calc_delete_bitmap_ver, 
&calc_delete_bitmap_rowsets);
+            // Because the data in memory has been changed, can't return an 
error.
+            CHECK(res.ok()) << "fail to capture_consistent_rowsets, res: " << 
res;
+
+            for (auto rs : calc_delete_bitmap_rowsets) {
+                res = update_delete_bitmap_without_lock(rs);
+                CHECK(res.ok()) << "fail to update_delete_bitmap_without_lock, 
res: " << res;
+            }
         }
     }
     // clear stale rowset


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

Reply via email to