zhangstar333 opened a new pull request, #69631:
URL: https://github.com/apache/doris/pull/69631
### What problem does this PR solve?
Issue Number: N/A
Problem Summary: FE shutdown could stop service while accepted local
statements or Flight results were still active. BE shutdown waited only for
fragments and could miss load receivers, queued opens and transaction cleanup.
After a restart, cached connections and immediate backend scheduling could
expose a node before recovery.
Drain accepted FE requests and BE load ownership within configurable
budgets. Keep Flight result retrieval available, clean idle MySQL sessions on a
bounded worker, and count receiver opens before queuing. Add
operator-controlled rolling mode with fresh-master Stream Load retries, local
DNS/client invalidation, graceful gRPC retirement, new BE brpc probes and
five-heartbeat confirmation. Preserve the 4.1 TLS factories, Flight SQL
implementation and normal query failure handling. Use optional heartbeat field
16 to avoid master's existing field 15.
Adapt the imported tests to the target branch: use the common fetchDataAsync
RPC and retain channel configuration generation checks; keep only the two
graceful LoadChannelMgr census tests in a dedicated file using the target
completion API.
### Release note
Support bounded FE/BE graceful shutdown and rolling restart on 4.1. Enable
SET GLOBAL enable_graceful_shutdown = true before rolling nodes and restore
false afterwards. FE readiness drain defaults to 15 seconds. Recovering
backends require five successful heartbeats in rolling mode before scheduling
resumes.
### Check List (For Author)
- Test: 43 focused FE unit tests pass using run-fe-ut.sh. FE Checkstyle,
clang-format 16 and shell syntax checks pass. Modified BE production/test
translation units pass compiler syntax checks using ASAN compilation database
flags. Full BE linking, BE runtime tests and cluster rolling restart tests were
not run for this port.
- Behavior changed: Yes; graceful drain, rolling-mode retries and backend
recovery gating.
- Does this need documentation: Yes; docs/graceful-shutdown-4.1.md is
included.
(cherry picked from commit b6e8efd21b533c725adcc7b27f92e9b5cb48283e)
### What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [ ] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [ ] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR should
merge into -->
--
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]