yixiutt opened a new pull request, #14900: URL: https://github.com/apache/doris/pull/14900
# Proposed changes In vertical compaction, every segment iterator will be loaded into Heap and then traverse all data, this will cost a lot of memory as every segment need to load a block. Actually, segments can be loaded on demand.If a rowset is none overlapping, then it's segment can be traversed one by one. In this pr, I use a iterator_init_flags to indicate whether a segment should be loaded when build vertical merger. For example, if i have 3 rowsets and each one have 3 segments, and rowset 2 is none overlapping, then 9 segments use a vector [1,1,1,1,0,0,1,1,1] to show that segments 0,1,2,3,6,7,8 should be loaded once build vertical merged and segments 4,5 can be loaded one by one when segment 3 reached it's end ## Problem summary Describe your changes. ## Checklist(Required) 1. Does it affect the original behavior: - [ ] Yes - [ ] No - [ ] I don't know 2. Has unit tests been added: - [ ] Yes - [ ] No - [ ] No Need 3. Has document been added or modified: - [ ] Yes - [ ] No - [ ] No Need 4. Does it need to update dependencies: - [ ] Yes - [ ] No 5. Are there any changes that cannot be rolled back: - [ ] Yes (If Yes, please explain WHY) - [ ] No ## Further comments If this is a relatively large or complex change, kick off the discussion at [d...@doris.apache.org](mailto:d...@doris.apache.org) by explaining why you chose the solution you did and what alternatives you considered, etc... -- 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