|
@ -160,11 +160,18 @@ func (vs *VolumeServer) doHeartbeat(masterAddress pb.ServerAddress, grpcDialOpti |
|
|
|
|
|
|
|
|
volumeTickChan := time.Tick(sleepInterval) |
|
|
volumeTickChan := time.Tick(sleepInterval) |
|
|
ecShardTickChan := time.Tick(17 * sleepInterval) |
|
|
ecShardTickChan := time.Tick(17 * sleepInterval) |
|
|
|
|
|
|
|
|
|
|
|
dataCenter := vs.store.GetDataCenter() |
|
|
|
|
|
rack := vs.store.GetRack() |
|
|
|
|
|
ip := vs.store.Ip |
|
|
|
|
|
port := uint32(vs.store.Port) |
|
|
for { |
|
|
for { |
|
|
select { |
|
|
select { |
|
|
case volumeMessage := <-vs.store.NewVolumesChan: |
|
|
case volumeMessage := <-vs.store.NewVolumesChan: |
|
|
deltaBeat := &master_pb.Heartbeat{ |
|
|
deltaBeat := &master_pb.Heartbeat{ |
|
|
|
|
|
Ip: ip, |
|
|
|
|
|
Port: port, |
|
|
|
|
|
DataCenter: dataCenter, |
|
|
|
|
|
Rack: rack, |
|
|
NewVolumes: []*master_pb.VolumeShortInformationMessage{ |
|
|
NewVolumes: []*master_pb.VolumeShortInformationMessage{ |
|
|
&volumeMessage, |
|
|
&volumeMessage, |
|
|
}, |
|
|
}, |
|
@ -176,6 +183,10 @@ func (vs *VolumeServer) doHeartbeat(masterAddress pb.ServerAddress, grpcDialOpti |
|
|
} |
|
|
} |
|
|
case ecShardMessage := <-vs.store.NewEcShardsChan: |
|
|
case ecShardMessage := <-vs.store.NewEcShardsChan: |
|
|
deltaBeat := &master_pb.Heartbeat{ |
|
|
deltaBeat := &master_pb.Heartbeat{ |
|
|
|
|
|
Ip: ip, |
|
|
|
|
|
Port: port, |
|
|
|
|
|
DataCenter: dataCenter, |
|
|
|
|
|
Rack: rack, |
|
|
NewEcShards: []*master_pb.VolumeEcShardInformationMessage{ |
|
|
NewEcShards: []*master_pb.VolumeEcShardInformationMessage{ |
|
|
&ecShardMessage, |
|
|
&ecShardMessage, |
|
|
}, |
|
|
}, |
|
@ -188,6 +199,10 @@ func (vs *VolumeServer) doHeartbeat(masterAddress pb.ServerAddress, grpcDialOpti |
|
|
} |
|
|
} |
|
|
case volumeMessage := <-vs.store.DeletedVolumesChan: |
|
|
case volumeMessage := <-vs.store.DeletedVolumesChan: |
|
|
deltaBeat := &master_pb.Heartbeat{ |
|
|
deltaBeat := &master_pb.Heartbeat{ |
|
|
|
|
|
Ip: ip, |
|
|
|
|
|
Port: port, |
|
|
|
|
|
DataCenter: dataCenter, |
|
|
|
|
|
Rack: rack, |
|
|
DeletedVolumes: []*master_pb.VolumeShortInformationMessage{ |
|
|
DeletedVolumes: []*master_pb.VolumeShortInformationMessage{ |
|
|
&volumeMessage, |
|
|
&volumeMessage, |
|
|
}, |
|
|
}, |
|
@ -199,6 +214,10 @@ func (vs *VolumeServer) doHeartbeat(masterAddress pb.ServerAddress, grpcDialOpti |
|
|
} |
|
|
} |
|
|
case ecShardMessage := <-vs.store.DeletedEcShardsChan: |
|
|
case ecShardMessage := <-vs.store.DeletedEcShardsChan: |
|
|
deltaBeat := &master_pb.Heartbeat{ |
|
|
deltaBeat := &master_pb.Heartbeat{ |
|
|
|
|
|
Ip: ip, |
|
|
|
|
|
Port: port, |
|
|
|
|
|
DataCenter: dataCenter, |
|
|
|
|
|
Rack: rack, |
|
|
DeletedEcShards: []*master_pb.VolumeEcShardInformationMessage{ |
|
|
DeletedEcShards: []*master_pb.VolumeEcShardInformationMessage{ |
|
|
&ecShardMessage, |
|
|
&ecShardMessage, |
|
|
}, |
|
|
}, |
|
@ -227,12 +246,12 @@ func (vs *VolumeServer) doHeartbeat(masterAddress pb.ServerAddress, grpcDialOpti |
|
|
case <-vs.stopChan: |
|
|
case <-vs.stopChan: |
|
|
var volumeMessages []*master_pb.VolumeInformationMessage |
|
|
var volumeMessages []*master_pb.VolumeInformationMessage |
|
|
emptyBeat := &master_pb.Heartbeat{ |
|
|
emptyBeat := &master_pb.Heartbeat{ |
|
|
Ip: vs.store.Ip, |
|
|
|
|
|
Port: uint32(vs.store.Port), |
|
|
|
|
|
|
|
|
Ip: ip, |
|
|
|
|
|
Port: port, |
|
|
PublicUrl: vs.store.PublicUrl, |
|
|
PublicUrl: vs.store.PublicUrl, |
|
|
MaxFileKey: uint64(0), |
|
|
MaxFileKey: uint64(0), |
|
|
DataCenter: vs.store.GetDataCenter(), |
|
|
|
|
|
Rack: vs.store.GetRack(), |
|
|
|
|
|
|
|
|
DataCenter: dataCenter, |
|
|
|
|
|
Rack: rack, |
|
|
Volumes: volumeMessages, |
|
|
Volumes: volumeMessages, |
|
|
HasNoVolumes: len(volumeMessages) == 0, |
|
|
HasNoVolumes: len(volumeMessages) == 0, |
|
|
} |
|
|
} |
|
|