diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-01-08 09:45:03 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-01-08 09:45:03 -0800 |
| commit | acf7ca7b93e0a33e9fc987dec600d1b9f1dc1e32 (patch) | |
| tree | 7f55e4c8baa41098df36e676c048d3c4588959cb /weed/storage/needle_map | |
| parent | 943f4986ef27fda2487eff0669ecf79faaaacda1 (diff) | |
| download | seaweedfs-acf7ca7b93e0a33e9fc987dec600d1b9f1dc1e32.tar.xz seaweedfs-acf7ca7b93e0a33e9fc987dec600d1b9f1dc1e32.zip | |
volume: fix compaction
Diffstat (limited to 'weed/storage/needle_map')
| -rw-r--r-- | weed/storage/needle_map/memdb.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/weed/storage/needle_map/memdb.go b/weed/storage/needle_map/memdb.go index 6aba6adeb..9eb4d9f56 100644 --- a/weed/storage/needle_map/memdb.go +++ b/weed/storage/needle_map/memdb.go @@ -89,6 +89,9 @@ func (cm *MemDb) SaveToIdx(idxName string) (ret error) { defer idxFile.Close() return cm.AscendingVisit(func(value NeedleValue) error { + if value.Offset.IsZero() || value.Size == TombstoneFileSize { + return nil + } _, err := idxFile.Write(value.ToBytes()) return err }) @@ -104,7 +107,7 @@ func (cm *MemDb) LoadFromIdx(idxName string) (ret error) { return idx.WalkIndexFile(idxFile, func(key NeedleId, offset Offset, size uint32) error { if offset.IsZero() || size == TombstoneFileSize { - return nil + return cm.Delete(key) } return cm.Set(key, offset, size) }) |
