diff options
| author | Chris Lu <chris.lu@gmail.com> | 2014-05-31 17:10:51 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2014-05-31 17:10:51 -0700 |
| commit | 4b7b439be92b4e0f944ce59b63c7d03f53b965ea (patch) | |
| tree | 10481bf0469e5dcb2ba45766f1ddb79c58511dae /go/storage/volume.go | |
| parent | 08cbb2c3457010b3278dd3cf6767de930baace3c (diff) | |
| download | seaweedfs-4b7b439be92b4e0f944ce59b63c7d03f53b965ea.tar.xz seaweedfs-4b7b439be92b4e0f944ce59b63c7d03f53b965ea.zip | |
Reduce memory usage for "weed fix"
Diffstat (limited to 'go/storage/volume.go')
| -rw-r--r-- | go/storage/volume.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/go/storage/volume.go b/go/storage/volume.go index 937798649..7bd8e7467 100644 --- a/go/storage/volume.go +++ b/go/storage/volume.go @@ -309,6 +309,7 @@ func (v *Volume) freeze() error { func ScanVolumeFile(dirname string, collection string, id VolumeId, visitSuperBlock func(SuperBlock) error, + readNeedleBody bool, visitNeedle func(n *Needle, offset int64) error) (err error) { var v *Volume if v, err = loadVolumeWithoutIndex(dirname, collection, id); err != nil { @@ -327,9 +328,11 @@ func ScanVolumeFile(dirname string, collection string, id VolumeId, return } for n != nil { - if err = n.ReadNeedleBody(v.dataFile, version, offset+int64(NeedleHeaderSize), rest); err != nil { - err = fmt.Errorf("cannot read needle body: %s", err) - return + if readNeedleBody { + if err = n.ReadNeedleBody(v.dataFile, version, offset+int64(NeedleHeaderSize), rest); err != nil { + err = fmt.Errorf("cannot read needle body: %s", err) + return + } } if err = visitNeedle(n, offset); err != nil { return |
