From 6219a9ad1f0bb4efd3bee736285872b22aa6e352 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 31 Oct 2018 21:48:05 -0700 Subject: [PATCH] filer ordered notifications --- weed/replication/sink/filersink/filer_sink.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/weed/replication/sink/filersink/filer_sink.go b/weed/replication/sink/filersink/filer_sink.go index e2974511a..60a1fa7d4 100644 --- a/weed/replication/sink/filersink/filer_sink.go +++ b/weed/replication/sink/filersink/filer_sink.go @@ -163,7 +163,11 @@ func (fs *FilerSink) UpdateEntry(key string, oldEntry, newEntry *filer_pb.Entry, glog.V(0).Infof("oldEntry %+v, newEntry %+v, existingEntry: %+v", oldEntry, newEntry, existingEntry) - if filer2.ETag(newEntry.Chunks) == filer2.ETag(existingEntry.Chunks) { + if existingEntry.Attributes.Mtime > newEntry.Attributes.Mtime { + // skip if already changed + // this usually happens when the messages are not ordered + glog.V(0).Infof("late updates %s", key) + } else if filer2.ETag(newEntry.Chunks) == filer2.ETag(existingEntry.Chunks) { // skip if no change // this usually happens when retrying the replication glog.V(0).Infof("already replicated %s", key)