dataroaring commented on code in PR #45287:
URL: https://github.com/apache/doris/pull/45287#discussion_r1895743928


##########
be/src/olap/rowset/rowset_meta.cpp:
##########
@@ -220,6 +220,30 @@ int64_t RowsetMeta::segment_file_size(int seg_id) {
                    : -1;
 }
 
+void RowsetMeta::set_segments_key_bounds(const std::vector<KeyBoundsPB>& 
segments_key_bounds) {
+    for (const KeyBoundsPB& key_bounds : segments_key_bounds) {
+        KeyBoundsPB* new_key_bounds = 
_rowset_meta_pb.add_segments_key_bounds();
+        *new_key_bounds = key_bounds;
+    }
+
+    bool enable_truncated {config::segments_key_bounds_truncation_threshold > 
0};

Review Comment:
   
   ```suggestion
       int32_t truncation_threshold = 
config::segments_key_bounds_truncation_threshold > 0;
   ```



##########
be/src/olap/rowset/rowset_meta.cpp:
##########
@@ -220,6 +220,30 @@ int64_t RowsetMeta::segment_file_size(int seg_id) {
                    : -1;
 }
 
+void RowsetMeta::set_segments_key_bounds(const std::vector<KeyBoundsPB>& 
segments_key_bounds) {
+    for (const KeyBoundsPB& key_bounds : segments_key_bounds) {
+        KeyBoundsPB* new_key_bounds = 
_rowset_meta_pb.add_segments_key_bounds();
+        *new_key_bounds = key_bounds;
+    }
+
+    bool enable_truncated {config::segments_key_bounds_truncation_threshold > 
0};
+    bool really_do_truncation {false};
+    if (enable_truncated) {
+        int32_t threshold = config::segments_key_bounds_truncation_threshold;
+        for (auto& segment_key_bounds : 
*_rowset_meta_pb.mutable_segments_key_bounds()) {
+            if (segment_key_bounds.min_key().size() > threshold) {
+                really_do_truncation = true;
+                segment_key_bounds.mutable_min_key()->resize(threshold);

Review Comment:
   
   ```suggestion
                   
segment_key_bounds.mutable_min_key()->resize(truncation_threshold);
   ```



##########
be/src/olap/rowset/rowset_meta.cpp:
##########
@@ -220,6 +220,30 @@ int64_t RowsetMeta::segment_file_size(int seg_id) {
                    : -1;
 }
 
+void RowsetMeta::set_segments_key_bounds(const std::vector<KeyBoundsPB>& 
segments_key_bounds) {
+    for (const KeyBoundsPB& key_bounds : segments_key_bounds) {
+        KeyBoundsPB* new_key_bounds = 
_rowset_meta_pb.add_segments_key_bounds();
+        *new_key_bounds = key_bounds;
+    }
+
+    bool enable_truncated {config::segments_key_bounds_truncation_threshold > 
0};
+    bool really_do_truncation {false};
+    if (enable_truncated) {
+        int32_t threshold = config::segments_key_bounds_truncation_threshold;
+        for (auto& segment_key_bounds : 
*_rowset_meta_pb.mutable_segments_key_bounds()) {
+            if (segment_key_bounds.min_key().size() > threshold) {
+                really_do_truncation = true;
+                segment_key_bounds.mutable_min_key()->resize(threshold);
+            }
+            if (segment_key_bounds.max_key().size() > threshold) {

Review Comment:
   
   ```suggestion
               if (segment_key_bounds.max_key().size() > truncation_threshold) {
   ```



##########
be/src/olap/compaction.cpp:
##########
@@ -105,11 +106,13 @@ bool is_rowset_tidy(std::string& pre_max_key, const 
RowsetSharedPtr& rhs) {
     if (!ret) {
         return false;
     }
-    if (min_key <= pre_max_key) {
+    bool cur_rs_key_bounds_truncated {rhs->is_segments_key_bounds_truncated()};
+    if (!Slice::origin_is_strictly_less_than(Slice {pre_max_key}, 
pre_rs_key_bounds_truncated,

Review Comment:
   ```suggestion
       if (!Slice::lhs_is_strictly_less_than_rhs(Slice {pre_max_key}, 
pre_rs_key_bounds_truncated,
   ```



##########
be/src/olap/rowset/rowset_meta.cpp:
##########
@@ -220,6 +220,30 @@ int64_t RowsetMeta::segment_file_size(int seg_id) {
                    : -1;
 }
 
+void RowsetMeta::set_segments_key_bounds(const std::vector<KeyBoundsPB>& 
segments_key_bounds) {
+    for (const KeyBoundsPB& key_bounds : segments_key_bounds) {
+        KeyBoundsPB* new_key_bounds = 
_rowset_meta_pb.add_segments_key_bounds();
+        *new_key_bounds = key_bounds;
+    }
+
+    bool enable_truncated {config::segments_key_bounds_truncation_threshold > 
0};
+    bool really_do_truncation {false};
+    if (enable_truncated) {
+        int32_t threshold = config::segments_key_bounds_truncation_threshold;

Review Comment:
   ```suggestion
   ```



##########
be/src/olap/rowset/rowset_meta.cpp:
##########
@@ -220,6 +220,30 @@ int64_t RowsetMeta::segment_file_size(int seg_id) {
                    : -1;
 }
 
+void RowsetMeta::set_segments_key_bounds(const std::vector<KeyBoundsPB>& 
segments_key_bounds) {
+    for (const KeyBoundsPB& key_bounds : segments_key_bounds) {
+        KeyBoundsPB* new_key_bounds = 
_rowset_meta_pb.add_segments_key_bounds();
+        *new_key_bounds = key_bounds;
+    }
+
+    bool enable_truncated {config::segments_key_bounds_truncation_threshold > 
0};
+    bool really_do_truncation {false};
+    if (enable_truncated) {
+        int32_t threshold = config::segments_key_bounds_truncation_threshold;
+        for (auto& segment_key_bounds : 
*_rowset_meta_pb.mutable_segments_key_bounds()) {
+            if (segment_key_bounds.min_key().size() > threshold) {

Review Comment:
   
   ```suggestion
               if (segment_key_bounds.min_key().size() > truncation_threshold) {
   ```



##########
be/src/olap/rowset/rowset_meta.cpp:
##########
@@ -220,6 +220,30 @@ int64_t RowsetMeta::segment_file_size(int seg_id) {
                    : -1;
 }
 
+void RowsetMeta::set_segments_key_bounds(const std::vector<KeyBoundsPB>& 
segments_key_bounds) {
+    for (const KeyBoundsPB& key_bounds : segments_key_bounds) {
+        KeyBoundsPB* new_key_bounds = 
_rowset_meta_pb.add_segments_key_bounds();
+        *new_key_bounds = key_bounds;
+    }
+
+    bool enable_truncated {config::segments_key_bounds_truncation_threshold > 
0};
+    bool really_do_truncation {false};
+    if (enable_truncated) {

Review Comment:
   
   ```suggestion
       if (truncation_threshold > 0) {
   ```



##########
be/src/util/slice.cpp:
##########
@@ -27,4 +27,23 @@ Slice::Slice(const faststring& s)
           data((char*)(s.data())),
           size(s.size()) {}
 
+bool Slice::origin_is_strictly_less_than(Slice X, bool X_is_truncated, Slice Y,

Review Comment:
   add ut for the function.



##########
be/src/olap/rowset/rowset_meta.cpp:
##########
@@ -220,6 +220,30 @@ int64_t RowsetMeta::segment_file_size(int seg_id) {
                    : -1;
 }
 
+void RowsetMeta::set_segments_key_bounds(const std::vector<KeyBoundsPB>& 
segments_key_bounds) {
+    for (const KeyBoundsPB& key_bounds : segments_key_bounds) {
+        KeyBoundsPB* new_key_bounds = 
_rowset_meta_pb.add_segments_key_bounds();
+        *new_key_bounds = key_bounds;
+    }
+
+    bool enable_truncated {config::segments_key_bounds_truncation_threshold > 
0};
+    bool really_do_truncation {false};
+    if (enable_truncated) {
+        int32_t threshold = config::segments_key_bounds_truncation_threshold;
+        for (auto& segment_key_bounds : 
*_rowset_meta_pb.mutable_segments_key_bounds()) {
+            if (segment_key_bounds.min_key().size() > threshold) {
+                really_do_truncation = true;
+                segment_key_bounds.mutable_min_key()->resize(threshold);
+            }
+            if (segment_key_bounds.max_key().size() > threshold) {
+                really_do_truncation = true;
+                segment_key_bounds.mutable_max_key()->resize(threshold);

Review Comment:
   
   ```suggestion
                   
segment_key_bounds.mutable_max_key()->resize(truncation_threshold);
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to