Skip to content

Commit

Permalink
Update root partition to refresh non-root partition on start
Browse files Browse the repository at this point in the history
  • Loading branch information
Shaddoll committed Nov 27, 2024
1 parent 1fcd7d5 commit 19e16ec
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
6 changes: 5 additions & 1 deletion service/matching/tasklist/task_list_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,10 @@ func (c *taskListManagerImpl) Start() error {
if c.taskListID.IsRoot() && c.taskListKind == types.TaskListKindNormal {
c.partitionConfig = c.db.PartitionConfig().ToInternalType()
c.logger.Info("get task list partition config from db", tag.Dynamic("root-partition", c.taskListID.GetRoot()), tag.Dynamic("task-list-partition-config", c.partitionConfig))
if c.partitionConfig != nil {
// push update notification to all non-root partitions on start
c.notifyPartitionConfig(context.Background(), *c.partitionConfig, int(c.partitionConfig.NumReadPartitions))
}
}
c.liveness.Start()
c.taskReader.Start()
Expand Down Expand Up @@ -423,7 +427,7 @@ func (c *taskListManagerImpl) notifyPartitionConfig(ctx context.Context, config

_, e = c.matchingClient.RefreshTaskListPartitionConfig(ctx, &types.MatchingRefreshTaskListPartitionConfigRequest{
DomainUUID: c.taskListID.GetDomainID(),
TaskList: &types.TaskList{Name: taskListName},
TaskList: &types.TaskList{Name: taskListName, Kind: &c.taskListKind},
TaskListType: taskListType,
PartitionConfig: &config,
})
Expand Down
17 changes: 16 additions & 1 deletion service/matching/tasklist/task_list_manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1321,10 +1321,25 @@ func TestManagerStart_RootPartition(t *testing.T) {
Kind: persistence.TaskListKindNormal,
AckLevel: 0,
RangeID: 0,
AdaptivePartitionConfig: &persistence.TaskListPartitionConfig{
Version: 1,
NumReadPartitions: 2,
NumWritePartitions: 2,
},
},
}, nil)
deps.mockMatchingClient.EXPECT().RefreshTaskListPartitionConfig(gomock.Any(), &types.MatchingRefreshTaskListPartitionConfigRequest{
DomainUUID: "domain-id",
TaskList: &types.TaskList{Name: "/__cadence_sys/tl/1", Kind: types.TaskListKindNormal.Ptr()},
TaskListType: types.TaskListTypeDecision.Ptr(),
PartitionConfig: &types.TaskListPartitionConfig{
Version: 1,
NumReadPartitions: 2,
NumWritePartitions: 2,
},
}).Return(&types.MatchingRefreshTaskListPartitionConfigResponse{}, nil)
assert.NoError(t, tlm.Start())
assert.Nil(t, tlm.TaskListPartitionConfig())
assert.Equal(t, &types.TaskListPartitionConfig{Version: 1, NumReadPartitions: 2, NumWritePartitions: 2}, tlm.TaskListPartitionConfig())
}

func TestManagerStart_NonRootPartition(t *testing.T) {
Expand Down

0 comments on commit 19e16ec

Please sign in to comment.