Ryan19929 opened a new pull request, #67156: URL: https://github.com/apache/doris/pull/67156
## Proposed changes Support single replica ingest binlog for CCR, allowing the leader BE to download rowset files once and distribute them to follower BEs, reducing cross-cluster network traffic and improving ingest performance. ## Key fixes - Use request `load_id` as the idempotent key for prepare/commit so retries hit the `kAlreadyExist` path stably. - Distinguish `kCommitted`/`kAlreadyExist`/`kError` in `commit_ingested_rowset`. - `kAlreadyExist` no longer overwrites MOW delete bitmap. - Leader waits for follower distribution to finish before cleaning up redundant files. - Follower cleanup reports success/failure metrics consistently. - Empty rowset is only allowed when `num_segments == 0`. - Follower distribution uses a bounded thread pool; CCR acquires leader/follower concurrency windows in globally sorted order to avoid ABBA deadlock. ## Feature flag `feature_single_replica_ingest_binlog` is disabled by default. ## Tests - BE unit test `BackendServiceIngestTest.*` (ASAN) - Regression test `test_single_replica_ingest_binlog` - CCR `go test ./...` / `go vet` / `gofmt` ## Related CCR PR apache/doris-ccp-syner (to be created) -- 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]
