shell: add volume.check.disk to fix inconsistency for replicated volumes

fix https://github.com/chrislusf/seaweedfs/issues/1923
This commit is contained in:
Chris Lu
2021-03-22 00:03:16 -07:00
parent df461402cc
commit b465095db1
12 changed files with 1565 additions and 801 deletions

View File

@@ -2,6 +2,7 @@ package needle_map
import (
"fmt"
"io"
"os"
"github.com/syndtr/goleveldb/leveldb"
@@ -104,7 +105,13 @@ func (cm *MemDb) LoadFromIdx(idxName string) (ret error) {
}
defer idxFile.Close()
return idx.WalkIndexFile(idxFile, func(key NeedleId, offset Offset, size Size) error {
return cm.LoadFromReaderAt(idxFile)
}
func (cm *MemDb) LoadFromReaderAt(readerAt io.ReaderAt) (ret error) {
return idx.WalkIndexFile(readerAt, func(key NeedleId, offset Offset, size Size) error {
if offset.IsZero() || size.IsDeleted() {
return cm.Delete(key)
}