This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 06efd5b4af1 [Opt](SegmentIterator) clear and release iterators memory 
footprint in advance when EOF (#44768) (#45734)
06efd5b4af1 is described below

commit 06efd5b4af16aa9b8f6d263629815b0159b72785
Author: lihangyu <[email protected]>
AuthorDate: Fri Dec 20 20:38:56 2024 +0800

    [Opt](SegmentIterator) clear and release iterators memory footprint in 
advance when EOF (#44768) (#45734)
    
    (#44768)
---
 be/src/olap/rowset/segment_v2/segment_iterator.cpp | 8 ++++++++
 be/src/olap/rowset/segment_v2/segment_iterator.h   | 3 +++
 2 files changed, 11 insertions(+)

diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp 
b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
index 43ed3720cbd..e9812da465a 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
@@ -1990,6 +1990,12 @@ Status 
SegmentIterator::copy_column_data_by_selector(vectorized::IColumn* input_
     return input_col_ptr->filter_by_selector(sel_rowid_idx, select_size, 
output_col);
 }
 
+void SegmentIterator::_clear_iterators() {
+    _column_iterators.clear();
+    _bitmap_index_iterators.clear();
+    _inverted_index_iterators.clear();
+}
+
 Status SegmentIterator::_next_batch_internal(vectorized::Block* block) {
     // TEMP column in block is not allowed here, need to erase.
     block->erase_tmp_columns();
@@ -2094,6 +2100,8 @@ Status 
SegmentIterator::_next_batch_internal(vectorized::Block* block) {
             }
         }
         block->clear_column_data();
+        // clear and release iterators memory footprint in advance
+        _clear_iterators();
         return Status::EndOfFile("no more data in segment");
     }
 
diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.h 
b/be/src/olap/rowset/segment_v2/segment_iterator.h
index 1b01fd10d5d..db631981965 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.h
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.h
@@ -384,6 +384,9 @@ private:
                                                                 bool 
default_return = false);
 
     void _calculate_expr_in_remaining_conjunct_root();
+
+    void _clear_iterators();
+
     class BitmapRangeIterator;
     class BackwardBitmapRangeIterator;
 


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

Reply via email to