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]