-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[improvement](tablet scheduler) Adjust tablet sched priority to help load data succ #38528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
|
run buildall |
TPC-H: Total hot run time: 41523 ms |
TPC-DS: Total hot run time: 169211 ms |
|
run buildall |
ClickBench: Total hot run time: 30.07 s |
TPC-H: Total hot run time: 41505 ms |
TPC-DS: Total hot run time: 169586 ms |
ClickBench: Total hot run time: 29.84 s |
acb18c8 to
14717f6
Compare
|
run buildall |
TPC-H: Total hot run time: 41850 ms |
TPC-DS: Total hot run time: 169797 ms |
ClickBench: Total hot run time: 30.29 s |
|
run buildall |
TPC-H: Total hot run time: 43523 ms |
TPC-DS: Total hot run time: 169172 ms |
ClickBench: Total hot run time: 30.08 s |
|
run buildall |
25580c9 to
499046c
Compare
|
run buildall |
3 similar comments
|
run buildall |
|
run buildall |
|
run buildall |
|
run feut |
|
run buildall |
b1cbeea to
84bf2b8
Compare
|
run buildall |
84bf2b8 to
b2ce3c2
Compare
|
run buildall |
|
run performance |
|
run buildall |
|
run buildall |
TPC-H: Total hot run time: 41731 ms |
TPC-DS: Total hot run time: 170219 ms |
ClickBench: Total hot run time: 29.65 s |
dataroaring
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
PR approved by at least one committer and no changes requested. |
deardeng
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…load data succ (#38528) improve tablet repair sched: 1. if a tablet had version incomplete replicas, then first fix the version incomplete replicas, after that if tablet still no enough replicas, then add new replicas. This improvement will also fix the bug: for 3 replica on 3 backend, if one replica A 's backend is dead, one replica B miss versions, then the tablet's status is REPLICA_MISSING. Since no new backend to locate a new replica, the sched will always fail, also the missing versions B will not be repair. This PR will try to fix replica B firstly, only after that it then try to add a new replica. 2. when load data fail, then repair this tablet imm; 3. increase those tablets' sched priority: a) recently write failed; b) had version incomplete replicas; c) mow; 4. fix colocate table health status, if colocate tablet's replica are not alive, its status should be unrecoverable. But adjust priority is still not enough due to the sched pending queue limit size 2000. TabletChecker will put 2000 sched tasks into the sched pending queue, if the queue is full, even the highest priority sched task couldn't put into the queue. It need to wait until the sched pending queue is not full later.
…load data succ (#38528) improve tablet repair sched: 1. if a tablet had version incomplete replicas, then first fix the version incomplete replicas, after that if tablet still no enough replicas, then add new replicas. This improvement will also fix the bug: for 3 replica on 3 backend, if one replica A 's backend is dead, one replica B miss versions, then the tablet's status is REPLICA_MISSING. Since no new backend to locate a new replica, the sched will always fail, also the missing versions B will not be repair. This PR will try to fix replica B firstly, only after that it then try to add a new replica. 2. when load data fail, then repair this tablet imm; 3. increase those tablets' sched priority: a) recently write failed; b) had version incomplete replicas; c) mow; 4. fix colocate table health status, if colocate tablet's replica are not alive, its status should be unrecoverable. But adjust priority is still not enough due to the sched pending queue limit size 2000. TabletChecker will put 2000 sched tasks into the sched pending queue, if the queue is full, even the highest priority sched task couldn't put into the queue. It need to wait until the sched pending queue is not full later.
improve tablet repair sched:
This improvement will also fix the bug: for 3 replica on 3 backend, if one replica A 's backend is dead, one replica B miss versions, then the tablet's status is REPLICA_MISSING. Since no new backend to locate a new replica, the sched will always fail, also the missing versions B will not be repair. This PR will try to fix replica B firstly, only after that it then try to add a new replica.
when load data fail, then repair this tablet imm;
increase those tablets' sched priority:
a) recently write failed;
b) had version incomplete replicas;
c) mow;
fix colocate table health status, if colocate tablet's replica are not alive, its status should be unrecoverable.
But adjust priority is still not enough due to the sched pending queue limit size 2000. TabletChecker will put 2000 sched tasks into the sched pending queue, if the queue is full, even the highest priority sched task couldn't put into the queue. It need to wait until the sched pending queue is not full later.