This is an automated email from the ASF dual-hosted git repository.
eldenmoon pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 9affc1035ba branch-3.0: [Opt](SegmentIterator) clear and release
iterators memory footprint in advance when EOF #44768 (#44839)
9affc1035ba is described below
commit 9affc1035baa9b7ee6b710a6e629f8cf577b4a37
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Dec 2 17:07:15 2024 +0800
branch-3.0: [Opt](SegmentIterator) clear and release iterators memory
footprint in advance when EOF #44768 (#44839)
Cherry-picked from #44768
Co-authored-by: lihangyu <[email protected]>
---
be/src/olap/rowset/segment_v2/segment_iterator.cpp | 8 ++++++++
be/src/olap/rowset/segment_v2/segment_iterator.h | 2 ++
2 files changed, 10 insertions(+)
diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
index e3aa0519c55..4fcaac363ca 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
@@ -1987,6 +1987,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) {
bool is_mem_reuse = block->mem_reuse();
DCHECK(is_mem_reuse);
@@ -2093,6 +2099,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 5626d15180c..5606a96635e 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.h
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.h
@@ -382,6 +382,8 @@ private:
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]