check whether shares the same filer store

This commit is contained in:
Chris Lu 2020-09-05 23:02:52 -07:00
parent bba90ff3c8
commit d741ed66db

View file

@ -48,14 +48,14 @@ func (ma *MetaAggregator) StartLoopSubscribe(f *Filer, self string) {
func (ma *MetaAggregator) subscribeToOneFiler(f *Filer, self string, filer string) { func (ma *MetaAggregator) subscribeToOneFiler(f *Filer, self string, filer string) {
/* /*
Each filer reads the "filer.store.id", which is the store's signature when filer starts. Each filer reads the "filer.store.id", which is the store's signature when filer starts.
When reading from other filers' local meta changes: When reading from other filers' local meta changes:
* if the received change does not contain signature from self, apply the change to current filer store. * if the received change does not contain signature from self, apply the change to current filer store.
Upon connecting to other filers, need to remember their signature and their offsets. Upon connecting to other filers, need to remember their signature and their offsets.
*/ */
var maybeReplicateMetadataChange func(*filer_pb.SubscribeMetadataResponse) var maybeReplicateMetadataChange func(*filer_pb.SubscribeMetadataResponse)
lastPersistTime := time.Now() lastPersistTime := time.Now()
@ -139,3 +139,15 @@ func (ma *MetaAggregator) subscribeToOneFiler(f *Filer, self string, filer strin
} }
} }
} }
func (ma *MetaAggregator) isSameFilerStore(f *Filer, peer string) (isSame bool, err error) {
err = pb.WithFilerClient(peer, ma.grpcDialOption, func(client filer_pb.SeaweedFilerClient) error {
resp, err := client.GetFilerConfiguration(context.Background(), &filer_pb.GetFilerConfigurationRequest{})
if err != nil {
return err
}
isSame = f.Signature == resp.Signature
return nil
})
return
}