aboutsummaryrefslogtreecommitdiff
path: root/weed/server/filer_server.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-05-30 21:27:48 -0700
committerchrislu <chris.lu@gmail.com>2022-05-30 21:27:48 -0700
commit6adc42147f972d2adc223e119c0f97094b3f0bec (patch)
tree612b97df88eaf0e29b37b56f918fba23adbccb72 /weed/server/filer_server.go
parent490e0850bff7a7fea3d9dd35e2761371a743ec4e (diff)
downloadseaweedfs-6adc42147f972d2adc223e119c0f97094b3f0bec.tar.xz
seaweedfs-6adc42147f972d2adc223e119c0f97094b3f0bec.zip
fresh filer store bootstrap from the oldest peer
Diffstat (limited to 'weed/server/filer_server.go')
-rw-r--r--weed/server/filer_server.go12
1 files changed, 9 insertions, 3 deletions
diff --git a/weed/server/filer_server.go b/weed/server/filer_server.go
index b52baf9c9..d2c1d67f5 100644
--- a/weed/server/filer_server.go
+++ b/weed/server/filer_server.go
@@ -151,7 +151,7 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption)
// TODO deprecated, will be be removed after 2020-12-31
// replaced by https://github.com/chrislusf/seaweedfs/wiki/Path-Specific-Configuration
// fs.filer.FsyncBuckets = v.GetStringSlice("filer.options.buckets_fsync")
- fs.filer.LoadConfiguration(v)
+ isFresh := fs.filer.LoadConfiguration(v)
notification.LoadConfiguration(v, "notification.")
@@ -165,8 +165,14 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption)
}
existingNodes := fs.filer.ListExistingPeerUpdates()
-
- fs.filer.AggregateFromPeers(option.Host, existingNodes)
+ startFromTime := time.Now().Add(-filer.LogFlushInterval)
+ if isFresh {
+ glog.V(0).Infof("%s bootstrap from peers %+v", option.Host, existingNodes)
+ if err := fs.filer.MaybeBootstrapFromPeers(option.Host, existingNodes, startFromTime); err == nil {
+ glog.Fatalf("%s bootstrap from %+v", option.Host, existingNodes)
+ }
+ }
+ fs.filer.AggregateFromPeers(option.Host, existingNodes, startFromTime)
fs.filer.LoadBuckets()