*: make low-latency mode changefeed-scoped - #5862
Conversation
Keep the low-latency mode focused on setting the logpuller advance interval to zero. Remove the additional batched heap update path and its helper after the 10k-region E2E test showed comparable mean and p95 latency without it.
Replace the periodic schema-capped scan retry with applied SchemaStore notifications. Serialize dispatcher scan scheduling with a short-lock state machine and coalesce worker continuations without dropping queued work.
Keep no-DML/no-DDL resolved notifications out of the scan worker queue while preserving dispatcher scan ownership. Gate continuation and schema-blocked recovery on low-latency mode, and cover queue-full recovery with a dropped-task metric.
…level-low-latency-mode
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What problem does this PR solve?
Issue Number: close #5705
TiCDC's low-latency optimizations were configured per server, so throughput
and latency-sensitive changefeeds could not safely coexist on the same
captures. Resolved-ts observability and high-cardinality EventService scan
scheduling also had avoidable latency and queue pressure.
Supersedes #5749.
What is changed and how it works?
performance-modeto persisted changefeedReplicaConfig, propagateit through dispatcher register/reset messages, and isolate EventStore
subscriptions by mode.
continuation, and schema-blocked retry changefeed-scoped. The retry ticker
starts lazily only after the first low-latency changefeed.
the scanner, reducing false queue pressure for no-scan tasks.
ticdc_owner_resolved_ts_lagto consistently report current PDwall-clock age of the coordinator's global minimum resolved timestamp, with
immediate refresh after complete node-report rounds.
Check List
Tests
isolated subscriptions, 20.245 MB/s shared traffic for 30 minutes; all
5,203 samples normal/equal. Low-latency owner checkpoint mean/P95/P99:
0.879/1.059/1.158s; throughput: 1.770/2.358/2.508s.)
Questions
Will it cause performance regression or break compatibility?
Throughput remains the default. Existing configs that omit the field keep
throughput behavior. Opposite modes intentionally do not share EventStore
subscriptions. The 30-minute mixed-mode run passed without status or count
drift; aggregate CPU/RSS was 32.556 cores/25.862 GiB.
Do you need to update user documentation, design documentation or monitoring documentation?
Yes. User documentation for the new changefeed option should be added before
the PR is marked ready. The existing metric name is unchanged; its semantics
are clarified and made consistent.
Release note