You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[improvement](be) Restructure OLAP scan profile timers into tree hierarchy (apache#62717)
Problem Summary:
The OLAP scanner profile timers were registered as a flat list, making
it hard to understand parent-child timing relationships. This change:
1. Converts all relevant timers to use ADD_CHILD_TIMER so the profile
renders as a tree reflecting actual call containment:
- ReaderInitTime → TabletReaderInitTimer → (TabletReader* + BlockReader*
sub-timers)
- ScannerGetBlockTime → RowsetReaderGetSegmentIteratorsTimer →
(DeleteBitmapGetAggTime, RowsetReaderCreateIteratorsTimer)
- ScannerGetBlockTime → BlockFetchTime → SegmentIteratorInitTimer →
(SegmentIterator* + Segment* sub-timers)
2. Fixes TabletReaderInitTimer inaccuracy: removes the SCOPED_RAW_TIMER
wrapper in TabletReader::init() (which double-counted overhead) and
instead computes the value as the sum of its sub-timers in
olap_scanner.cpp.
3. Adds missing COUNTER_UPDATE for
SegmentIteratorInitSegmentPrefetchersTimer
which was tracked in stats but never reported to the profile.
### Release note
Profile timers for OLAP scanner are now displayed as a tree hierarchy
showing containment relationships between init and scan phases.
### Check List (For Author)
- Test: Manual test (profile structure verified via code review)
- No functional behavior changed, only profile display structure
- Behavior changed: No
- Does this need documentation: No
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
0 commit comments