diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-09-05 23:02:52 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-09-05 23:02:52 -0700 |
| commit | d741ed66db44c2058e30c260e2a75eeec7308bd1 (patch) | |
| tree | 06be43085e8610e6e9347779c66461c9c5141a37 | |
| parent | bba90ff3c822914a8a2da4369e65756ff366cef2 (diff) | |
| download | seaweedfs-d741ed66db44c2058e30c260e2a75eeec7308bd1.tar.xz seaweedfs-d741ed66db44c2058e30c260e2a75eeec7308bd1.zip | |
check whether shares the same filer store
| -rw-r--r-- | weed/filer/meta_aggregator.go | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/weed/filer/meta_aggregator.go b/weed/filer/meta_aggregator.go index f8459e724..18049ee04 100644 --- a/weed/filer/meta_aggregator.go +++ b/weed/filer/meta_aggregator.go @@ -48,14 +48,14 @@ func (ma *MetaAggregator) StartLoopSubscribe(f *Filer, self 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: - * if the received change does not contain signature from self, apply the change to current filer store. + 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. - 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) 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 +} |
