enhance: enable parallel execution of L0 compactions (#36816)

Signed-off-by: Ted Xu <ted.xu@zilliz.com>
pull/36954/head
Ted Xu 2024-10-17 14:47:31 +08:00 committed by GitHub
parent 60e51f1076
commit 605e0890fb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 39 additions and 2 deletions

View File

@ -242,8 +242,7 @@ func (c *compactionPlanHandler) schedule() []CompactionTask {
switch t.GetType() {
case datapb.CompactionType_Level0DeleteCompaction:
if l0ChannelExcludes.Contain(t.GetChannel()) ||
mixChannelExcludes.Contain(t.GetChannel()) {
if mixChannelExcludes.Contain(t.GetChannel()) {
excluded = append(excluded, t)
continue
}

View File

@ -299,6 +299,44 @@ func (s *CompactionPlanHandlerSuite) TestScheduleNodeWithL0Executing() {
meta: s.mockMeta,
},
}, []UniqueID{10, 13}},
{"with multiple L0 tasks same channel", []CompactionTask{
&l0CompactionTask{
CompactionTask: &datapb.CompactionTask{
PlanID: 10,
Type: datapb.CompactionType_Level0DeleteCompaction,
State: datapb.CompactionTaskState_pipelining,
Channel: "ch-11",
NodeID: 102,
},
plan: &datapb.CompactionPlan{PlanID: 10, Channel: "ch-3", Type: datapb.CompactionType_Level0DeleteCompaction},
sessions: s.mockSessMgr,
meta: s.mockMeta,
},
&l0CompactionTask{
CompactionTask: &datapb.CompactionTask{
PlanID: 11,
Type: datapb.CompactionType_Level0DeleteCompaction,
State: datapb.CompactionTaskState_pipelining,
Channel: "ch-11",
NodeID: 102,
},
plan: &datapb.CompactionPlan{PlanID: 11, Channel: "ch-3", Type: datapb.CompactionType_Level0DeleteCompaction},
sessions: s.mockSessMgr,
meta: s.mockMeta,
},
&l0CompactionTask{
CompactionTask: &datapb.CompactionTask{
PlanID: 12,
Type: datapb.CompactionType_Level0DeleteCompaction,
State: datapb.CompactionTaskState_pipelining,
Channel: "ch-11",
NodeID: 102,
},
plan: &datapb.CompactionPlan{PlanID: 12, Channel: "ch-3", Type: datapb.CompactionType_Level0DeleteCompaction},
sessions: s.mockSessMgr,
meta: s.mockMeta,
},
}, []UniqueID{10, 11, 12}},
{"without L0 tasks", []CompactionTask{
&mixCompactionTask{
CompactionTask: &datapb.CompactionTask{