@@ -56,9 +56,6 @@ type Manager struct {
56
56
pdClock pdutil.Clock
57
57
regionCache * tikv.RegionCache
58
58
59
- // msgCh is used to cache messages from coordinator
60
- msgCh chan * messaging.TargetMessage
61
-
62
59
taskScheduler threadpool.ThreadPool
63
60
}
64
61
@@ -95,16 +92,11 @@ func NewMaintainerManager(selfNode *node.Info,
95
92
// recvMessages is the message handler for maintainer manager
96
93
func (m * Manager ) recvMessages (ctx context.Context , msg * messaging.TargetMessage ) error {
97
94
switch msg .Type {
98
- // Coordinator related messages
99
- case messaging .TypeAddMaintainerRequest ,
100
- messaging .TypeRemoveMaintainerRequest ,
101
- messaging .TypeCoordinatorBootstrapRequest :
102
- select {
103
- case <- ctx .Done ():
104
- return ctx .Err ()
105
- case m .msgCh <- msg :
106
- }
107
- return nil
95
+ case messaging .TypeCoordinatorBootstrapRequest :
96
+ log .Info ("received coordinator bootstrap request" , zap .String ("from" , msg .From .String ()))
97
+ m .onCoordinatorBootstrapRequest (msg )
98
+ case messaging .TypeAddMaintainerRequest , messaging .TypeRemoveMaintainerRequest :
99
+ m .onDispatchMaintainerRequest (msg )
108
100
// receive bootstrap response message from the dispatcher manager
109
101
case messaging .TypeMaintainerBootstrapResponse :
110
102
req := msg .Message [0 ].(* heartbeatpb.MaintainerBootstrapResponse )
@@ -140,8 +132,6 @@ func (m *Manager) Run(ctx context.Context) error {
140
132
select {
141
133
case <- ctx .Done ():
142
134
return ctx .Err ()
143
- case msg := <- m .msgCh :
144
- m .handleMessage (msg )
145
135
case <- ticker .C :
146
136
// 1. try to send heartbeat to coordinator
147
137
m .sendHeartbeat ()
@@ -274,24 +264,33 @@ func (m *Manager) onRemoveMaintainerRequest(msg *messaging.TargetMessage) *heart
274
264
275
265
func (m * Manager ) onDispatchMaintainerRequest (
276
266
msg * messaging.TargetMessage ,
277
- ) * heartbeatpb.MaintainerStatus {
267
+ ) {
268
+ if ! m .isBootstrap () {
269
+ return
270
+ }
278
271
if m .coordinatorID != msg .From {
279
272
log .Warn ("ignore invalid coordinator id" ,
280
273
zap .Any ("request" , msg ),
281
274
zap .Any ("coordinatorID" , m .coordinatorID ),
282
275
zap .Stringer ("from" , msg .From ))
283
- return nil
284
276
}
277
+ var status * heartbeatpb.MaintainerStatus
285
278
switch msg .Type {
286
279
case messaging .TypeAddMaintainerRequest :
287
280
req := msg .Message [0 ].(* heartbeatpb.AddMaintainerRequest )
288
- return m .onAddMaintainerRequest (req )
281
+ status = m .onAddMaintainerRequest (req )
289
282
case messaging .TypeRemoveMaintainerRequest :
290
- return m .onRemoveMaintainerRequest (msg )
283
+ status = m .onRemoveMaintainerRequest (msg )
291
284
default :
292
285
log .Warn ("unknown message type" , zap .Any ("message" , msg .Message ))
293
286
}
294
- return nil
287
+ if status == nil {
288
+ return
289
+ }
290
+ response := & heartbeatpb.MaintainerHeartbeat {
291
+ Statuses : []* heartbeatpb.MaintainerStatus {status },
292
+ }
293
+ m .sendMessages (response )
295
294
}
296
295
297
296
func (m * Manager ) sendHeartbeat () {
@@ -314,27 +313,6 @@ func (m *Manager) sendHeartbeat() {
314
313
}
315
314
}
316
315
317
- func (m * Manager ) handleMessage (msg * messaging.TargetMessage ) {
318
- switch msg .Type {
319
- case messaging .TypeCoordinatorBootstrapRequest :
320
- log .Info ("received coordinator bootstrap request" , zap .String ("from" , msg .From .String ()))
321
- m .onCoordinatorBootstrapRequest (msg )
322
- case messaging .TypeAddMaintainerRequest ,
323
- messaging .TypeRemoveMaintainerRequest :
324
- if m .isBootstrap () {
325
- status := m .onDispatchMaintainerRequest (msg )
326
- if status == nil {
327
- return
328
- }
329
- response := & heartbeatpb.MaintainerHeartbeat {
330
- Statuses : []* heartbeatpb.MaintainerStatus {status },
331
- }
332
- m .sendMessages (response )
333
- }
334
- default :
335
- }
336
- }
337
-
338
316
func (m * Manager ) dispatcherMaintainerMessage (
339
317
ctx context.Context , changefeed common.ChangeFeedID , msg * messaging.TargetMessage ,
340
318
) error {
0 commit comments