Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
a54f2f9 to
8953cfd
Compare
### What problem does this PR solve? Issue Number: N/A Related PR: N/A Problem Summary: Recycler metrics were reported through report() and finish_report(), with shared tablet and segment contexts. Update current-round scanned, expired, recycled, object-byte and duration metrics from context fields, and bind contexts to each instance. This is the first part of the metrics migration; legacy scanning and tests are updated in the following commits. ### Release note Replace legacy recycler round metrics with current-round metrics. ### Check List (For Author) - Test: Manual check of commit scope, git diff --check and final tree equality with the original commit. No build or unit tests were run for this history-only split. The format check could not run because clang-format 16 is unavailable. - Behavior changed: Yes. Recycler metric names and reporting behavior change. - Does this need documentation: No
### What problem does this PR solve? Issue Number: N/A Related PR: N/A Problem Summary: The legacy statistics path scanned KV records before recycling to estimate pending work. Remove these duplicate scans, their configuration options and the statistics_recycle HTTP handler. Actual recycling becomes the source of recycler statistics. Test adaptation follows in the next commit. ### Release note Remove statistics_recycle, enable_recycler_stats_metrics and instance_recycler_statistics_recycle_worker_pool_size. ### Check List (For Author) - Test: Manual check of commit scope, git diff --check and final tree equality with the original commit. No build or unit tests were run for this history-only split. The format check could not run because clang-format 16 is unavailable. - Behavior changed: Yes. Remove the legacy statistics endpoint, configuration and pre-scans. - Does this need documentation: No
8953cfd to
385ad0b
Compare
|
run buildall |
3260283 to
53aeff0
Compare
|
run buildall |
c4908c6 to
7a8fe8c
Compare
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
Issue Number: N/A Related PR: N/A Problem Summary: Update Cloud tests to pass instance and operation names to RecyclerMetricsContext. Initialize the shared test context on first use to avoid bvar and glog access during static initialization. Remove assertions, configuration setup and scan tests for the deleted statistics interface. None - Test: Manual check of commit scope, git diff --check and final tree equality with the original commit. No build or unit tests were run for this history-only split. The format check could not run because clang-format 16 is unavailable. - Behavior changed: No - Does this need documentation: No
7a8fe8c to
558a723
Compare
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
|
/review |
There was a problem hiding this comment.
Requesting changes because the inline-metrics replacement does not yet preserve accurate or live recycler observability. The inline comments identify 16 distinct production/test defects: current values are not published on several paths; unused or concurrent contexts overwrite shared series; multiple task paths mix units or place counters on the wrong side of object/KV commit boundaries; and versioned/cross-vault rowset aggregation double-counts, omits, or misattributes physical deletion results.
Review completeness: capped/incomplete. The configured final convergence round produced a new validated retry-overcount finding, so this submission does not claim exhaustive convergence.
Critical checkpoint conclusions:
- Goal: not achieved. Removing the standalone scan is a useful direction, but the replacement metrics do not consistently describe actual current work or committed/physical outcomes.
- Scope/focus: the code removal is focused, but the replacement is distributed across many parallel recycler paths and is not implemented consistently.
- Concurrency/thread safety: worker-owned counters use relaxed atomics appropriately and reviewed pools join before context destruction; no deadlock or worker lifetime defect was found. However, the scheduled and manual entry points can publish the same labels concurrently.
- Lifecycle: automatic constructor reset/destructor finalization causes missing live publication, preflight zero overwrites, and cross-publisher clobbering. No static-initialization-order issue was found.
- Configuration/compatibility: no new configuration is added and removed config/HTTP symbols have no remaining in-repository caller. The endpoint/config/metric removals are externally visible, but repository evidence did not establish a separate compatibility requirement.
- Parallel paths/conditions: batch, fallback, prefix-delete, ref-counted, cross-vault, stream, stage, copy-job, and tmp-rowset branches were traced; the inline findings cover the divergent failure and retry boundaries.
- Tests/results: the added unit test manually publishes an isolated context, and the regression helper checks only legacy-series presence. Production publishers, exact counter values, partial failures, retries, and shared-rowset outcomes are not covered. No tests or builds were run in this static-only review; passing author/CI checks are not independent validation.
- Observability: this is the primary blocker; several new gauges are zero, stale, mislabeled, double-counted, or assigned to the wrong round. Logs retain instance/tablet identifiers, but they do not repair exported metric semantics.
- Transactions/persistence/data writes: no new storage format or EditLog path is introduced. Existing object/KV deletion ordering was checked; several metrics are updated at the wrong physical-delete or TxnKV-commit boundary, as noted inline.
- FE/BE variables: none added.
- Performance: removing the standalone full statistics scan should reduce redundant work; no separate CPU/memory regression was found.
- Other: no additional user focus points were supplied.
What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)