apache / apache/doris

[Feature](binlog): keep row binlog tablet locality during scheduling

Open
#65,978 0 comments 0 reactions 0 assignees View on GitHub
kind/feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.