diff options
| author | Guo Lei <snipergg@163.com> | 2022-11-14 16:19:27 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-14 00:19:27 -0800 |
| commit | 5b905fb2b74049437fcd939c0304a7e34d051234 (patch) | |
| tree | 2c654eb74ee30f5c9e20a6c26de4ede1d04543d9 /weed/storage/volume_loading.go | |
| parent | d90aa31d5f5b846c13bbeabfbd7d89260c21020c (diff) | |
| download | seaweedfs-5b905fb2b74049437fcd939c0304a7e34d051234.tar.xz seaweedfs-5b905fb2b74049437fcd939c0304a7e34d051234.zip | |
Lazy loading (#3958)
* types packages is imported more than onece
* lazy-loading
* fix bugs
* fix bugs
* fix unit tests
* fix test error
* rename function
* unload ldb after initial startup
* Don't load ldb when starting volume server if ldbtimeout is set.
* remove uncessary unloadldb
* Update weed/command/server.go
Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
* Update weed/command/volume.go
Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
Co-authored-by: guol-fnst <goul-fnst@fujitsu.com>
Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
Diffstat (limited to 'weed/storage/volume_loading.go')
| -rw-r--r-- | weed/storage/volume_loading.go | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/weed/storage/volume_loading.go b/weed/storage/volume_loading.go index dac0e22a2..78dfa6901 100644 --- a/weed/storage/volume_loading.go +++ b/weed/storage/volume_loading.go @@ -2,9 +2,10 @@ package storage import ( "fmt" - "github.com/seaweedfs/seaweedfs/weed/storage/types" "os" + "github.com/seaweedfs/seaweedfs/weed/storage/types" + "github.com/syndtr/goleveldb/leveldb/opt" "github.com/seaweedfs/seaweedfs/weed/glog" @@ -136,7 +137,7 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind case NeedleMapInMemory: if v.tmpNm != nil { glog.V(0).Infof("updating memory compact index %s ", v.FileName(".idx")) - err = v.tmpNm.UpdateNeedleMap(v, indexFile, nil) + err = v.tmpNm.UpdateNeedleMap(v, indexFile, nil, 0) } else { glog.V(0).Infoln("loading memory index", v.FileName(".idx"), "to memory") if v.nm, err = LoadCompactNeedleMap(indexFile); err != nil { @@ -151,10 +152,10 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind } if v.tmpNm != nil { glog.V(0).Infoln("updating leveldb index", v.FileName(".ldb")) - err = v.tmpNm.UpdateNeedleMap(v, indexFile, opts) + err = v.tmpNm.UpdateNeedleMap(v, indexFile, opts, v.ldbTimeout) } else { glog.V(0).Infoln("loading leveldb index", v.FileName(".ldb")) - if v.nm, err = NewLevelDbNeedleMap(v.FileName(".ldb"), indexFile, opts); err != nil { + if v.nm, err = NewLevelDbNeedleMap(v.FileName(".ldb"), indexFile, opts, v.ldbTimeout); err != nil { glog.V(0).Infof("loading leveldb %s error: %v", v.FileName(".ldb"), err) } } @@ -166,10 +167,10 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind } if v.tmpNm != nil { glog.V(0).Infoln("updating leveldb medium index", v.FileName(".ldb")) - err = v.tmpNm.UpdateNeedleMap(v, indexFile, opts) + err = v.tmpNm.UpdateNeedleMap(v, indexFile, opts, v.ldbTimeout) } else { glog.V(0).Infoln("loading leveldb medium index", v.FileName(".ldb")) - if v.nm, err = NewLevelDbNeedleMap(v.FileName(".ldb"), indexFile, opts); err != nil { + if v.nm, err = NewLevelDbNeedleMap(v.FileName(".ldb"), indexFile, opts, v.ldbTimeout); err != nil { glog.V(0).Infof("loading leveldb %s error: %v", v.FileName(".ldb"), err) } } @@ -181,10 +182,10 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind } if v.tmpNm != nil { glog.V(0).Infoln("updating leveldb large index", v.FileName(".ldb")) - err = v.tmpNm.UpdateNeedleMap(v, indexFile, opts) + err = v.tmpNm.UpdateNeedleMap(v, indexFile, opts, v.ldbTimeout) } else { glog.V(0).Infoln("loading leveldb large index", v.FileName(".ldb")) - if v.nm, err = NewLevelDbNeedleMap(v.FileName(".ldb"), indexFile, opts); err != nil { + if v.nm, err = NewLevelDbNeedleMap(v.FileName(".ldb"), indexFile, opts, v.ldbTimeout); err != nil { glog.V(0).Infof("loading leveldb %s error: %v", v.FileName(".ldb"), err) } } |
