deardeng opened a new pull request, #66623:
URL: https://github.com/apache/doris/pull/66623
Single replica load is an experimental, disabled-by-default load path that
writes data to one master replica first and then pulls the generated rowset to
slave replicas.
This feature maintains a separate end-to-end implementation across FE and
BE, including:
- FE configuration and session variables
- Nereids and legacy sink planning
- Master/slave tablet location generation
- DeltaWriter slave commit callbacks
- Transaction-to-writer callback tracking
- Slave rowset pull and commit RPCs
- A dedicated HTTP download endpoint and worker pool
- Auto-partition master/slave location caching
- Feature-specific regression tests and debug logic
The feature is no longer actively used, while its parallel execution path
adds considerable maintenance cost and introduces additional transaction,
callback, concurrency, and upgrade complexity.
This PR removes the single replica load implementation and makes normal
load paths always write to all selected replicas.
The following options are removed:
- FE config: `enable_single_replica_load`
- BE config: `enable_single_replica_load`
- Session variable: `enable_single_replica_insert`
- Related slave download worker and RPC timeout configurations
The Thrift and protobuf definitions are intentionally kept unchanged to
avoid protocol schema and generated-code churn.
For compatibility and data safety:
- A BE receiving `write_single_replica = true` returns `NotSupported`
explicitly instead of silently writing only one replica.
- The retained slave rowset RPC methods return `NotSupported`.
- New FE-generated load plans no longer populate `write_single_replica`,
`slave_location`, or slave tablet locations.
- Normal multi-replica load and transaction commit paths remain unchanged.
Feature-specific regression cases are removed, while existing normal load
tests are updated to use the simplified `DeltaWriter::commit_txn()` interface.
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)
- [x] No need to test or manual test. Explain why:
- [x] 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:
- [x] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [x] 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]