aboutsummaryrefslogtreecommitdiff
path: root/weed/filesys/meta_cache
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-08-28 23:48:48 -0700
committerChris Lu <chris.lu@gmail.com>2020-08-28 23:48:48 -0700
commitca658a97c5248ba099356b006f0b341af53b0816 (patch)
tree8b59defed9a417c4fa2e9346a23cd8a64e851852 /weed/filesys/meta_cache
parent63ad1abccec691d2204b8dc63109ffeead0b0eed (diff)
downloadseaweedfs-ca658a97c5248ba099356b006f0b341af53b0816.tar.xz
seaweedfs-ca658a97c5248ba099356b006f0b341af53b0816.zip
add signatures to messages to avoid double processing
Diffstat (limited to 'weed/filesys/meta_cache')
-rw-r--r--weed/filesys/meta_cache/meta_cache_subscribe.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/weed/filesys/meta_cache/meta_cache_subscribe.go b/weed/filesys/meta_cache/meta_cache_subscribe.go
index ca18411e0..3c0a9c2ac 100644
--- a/weed/filesys/meta_cache/meta_cache_subscribe.go
+++ b/weed/filesys/meta_cache/meta_cache_subscribe.go
@@ -12,10 +12,17 @@ import (
"github.com/chrislusf/seaweedfs/weed/util"
)
-func SubscribeMetaEvents(mc *MetaCache, client filer_pb.FilerClient, dir string, lastTsNs int64) error {
+func SubscribeMetaEvents(mc *MetaCache, selfSignature int32, client filer_pb.FilerClient, dir string, lastTsNs int64) error {
processEventFn := func(resp *filer_pb.SubscribeMetadataResponse) error {
message := resp.EventNotification
+
+ for _, sig := range message.Signatures {
+ if sig == selfSignature && selfSignature != 0 {
+ return nil
+ }
+ }
+
var oldPath util.FullPath
var newEntry *filer2.Entry
if message.OldEntry != nil {
@@ -41,6 +48,7 @@ func SubscribeMetaEvents(mc *MetaCache, client filer_pb.FilerClient, dir string,
ClientName: "mount",
PathPrefix: dir,
SinceNs: lastTsNs,
+ Signature: selfSignature,
})
if err != nil {
return fmt.Errorf("subscribe: %v", err)