diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-10-31 08:32:46 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-30 20:32:46 -0700 |
| commit | bf8a9d2db138053951af646b87f613b7d96142ee (patch) | |
| tree | 2e59fbdb7b97ff4f6018ecd5ad069efead5fc42d /weed/storage/needle_map | |
| parent | 8b9957d4616f9c6d416552a1db9fbd83c97c64f4 (diff) | |
| download | seaweedfs-bf8a9d2db138053951af646b87f613b7d96142ee.tar.xz seaweedfs-bf8a9d2db138053951af646b87f613b7d96142ee.zip | |
[volume.chek.disk] sync of deletions the fix (#3923)
* sync of deletions the fix
* avoid return if only partiallyDeletedNeedles
* refactor sync deletions
Diffstat (limited to 'weed/storage/needle_map')
| -rw-r--r-- | weed/storage/needle_map/memdb.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/storage/needle_map/memdb.go b/weed/storage/needle_map/memdb.go index f2b161792..d3d47b605 100644 --- a/weed/storage/needle_map/memdb.go +++ b/weed/storage/needle_map/memdb.go @@ -145,8 +145,12 @@ func (cm *MemDb) LoadFromIdx(idxName string) (ret error) { func (cm *MemDb) LoadFromReaderAt(readerAt io.ReaderAt) (ret error) { + return cm.LoadFilterFromReaderAt(readerAt, true, true) +} + +func (cm *MemDb) LoadFilterFromReaderAt(readerAt io.ReaderAt, isFilterOffsetZero bool, isFilterDeleted bool) (ret error) { return idx.WalkIndexFile(readerAt, 0, func(key NeedleId, offset Offset, size Size) error { - if offset.IsZero() || size.IsDeleted() { + if (isFilterOffsetZero && offset.IsZero()) || (isFilterDeleted && size.IsDeleted()) { return cm.Delete(key) } return cm.Set(key, offset, size) |
