mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-10-21 20:07:23 +08:00
@@ -74,7 +74,7 @@ func generateLevelDbFile(dbFileName string, indexFile *os.File) error {
|
||||
}
|
||||
defer db.Close()
|
||||
return idx.WalkIndexFile(indexFile, func(key NeedleId, offset Offset, size Size) error {
|
||||
if !offset.IsZero() {
|
||||
if !offset.IsZero() && size.IsValid() {
|
||||
levelDbWrite(db, key, offset, size)
|
||||
} else {
|
||||
levelDbDelete(db, key)
|
||||
@@ -123,7 +123,7 @@ func levelDbDelete(db *leveldb.DB, key NeedleId) error {
|
||||
return db.Delete(bytes, nil)
|
||||
}
|
||||
|
||||
func (m *LevelDbNeedleMap) Delete(key NeedleId) error {
|
||||
func (m *LevelDbNeedleMap) Delete(key NeedleId, offset Offset) error {
|
||||
oldNeedle, found := m.Get(key)
|
||||
if !found || oldNeedle.Size.IsDeleted() {
|
||||
return nil
|
||||
@@ -131,7 +131,7 @@ func (m *LevelDbNeedleMap) Delete(key NeedleId) error {
|
||||
m.logDelete(oldNeedle.Size)
|
||||
|
||||
// write to index file first
|
||||
if err := m.appendToIndexFile(key, oldNeedle.Offset, -oldNeedle.Size); err != nil {
|
||||
if err := m.appendToIndexFile(key, offset, TombstoneFileSize); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user