[Feature](binlog): keep row binlog tablet locality during scheduling
- Dominant language
- Java
- Stars
- 15.9k
- Forks
- 3.9k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 520
Description
### Search before asking
- [x] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues.
### Description
Each row binlog tablet must be located on the same backend and storage path as its corresponding base tablet. However, replica repair, relocation, or balancing may schedule them independently and break this locality, causing insufficient valid replica pairs and load failures.
The scheduler should preserve base/binlog tablet locality during replica creation, repair, relocation, and deletion.
### Use case
For tables with row binlog enabled, backend failures, disk failures, balancing, and decommissioning should not break the base/binlog tablet pairing. After scheduling, every row binlog replica should remain on the same backend and storage path as its base replica, ensuring that writes and binlog reads remain available.
### Related issues
#65265
#65804
#62058
### Are you willing to submit PR?
- [x] Yes I am willing to submit a PR!
### Code of Conduct
- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
Contributor guide
Research direction
Start by reading related issues #65265, #65804, and #62058, then trace the scheduler paths responsible for replica creation, repair, relocation, balancing, decommissioning, and deletion. Done means row binlog replicas remain on the same backend and storage path as their corresponding base replicas across those operations, including failure and recovery scenarios.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100