bobhan1 opened a new pull request, #69325:
URL: https://github.com/apache/doris/pull/69325
### What problem does this PR solve?
Issue Number: N/A
Problem Summary:
Event-driven warmup can register a rowset before the target synchronizes its
metadata. If the source compacts that rowset before the next synchronization,
it never enters the target's local Rowset GC lifecycle, leaving its completed
warmup record allocated indefinitely.
Reuse the existing tablet vacuum task to reclaim completed records that are
absent from both visible and stale rowsets after a configurable grace period
(one hour by default). Include tablets without stale or unused rowsets, and
release oversized hash buckets after reclamation. Retain running attempts and
records belonging to local query version paths.
Assign a generation to each accepted attempt so delayed callbacks and index
registration cannot update a replacement record. Protect unused-Rowset state
removal with the same metadata lock used by callbacks, preserving
meta-before-GC lock order, and make the state getter read-only.
### Release note
Cloud backends reclaim orphaned completed rowset warmup records to reduce
memory growth. The retention grace period is controlled by
`warm_up_rowset_state_gc_grace_period_seconds`, which defaults to 3600 seconds.
### Check List (For Author)
- Test
- [ ] Regression test
- [ ] Unit Test: ASAN build and focused tests are running with
`./run-be-ut.sh --run
--filter='CloudTabletWarmUpStateTest.*:CloudTabletMgrTest.*:*PreferCache*:*FreshnessTolerance*'
-j100`.
- [x] Manual test: clang-format 16 check, build header hygiene checks,
and `git diff --check`.
- Behavior changed:
- [x] Yes. Aged orphaned completed warmup records are reclaimed and may
subsequently be warmed again. Running and local visible/stale records remain
tracked.
- Does this need documentation?
- [x] No.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]