Skip to content

Commit

Permalink
allow skip delete fast node entries
Browse files Browse the repository at this point in the history
  • Loading branch information
mmsqe committed Nov 16, 2022
1 parent 325405d commit 76c0d19
Showing 1 changed file with 20 additions and 15 deletions.
35 changes: 20 additions & 15 deletions nodedb.go
Original file line number Diff line number Diff line change
Expand Up @@ -508,24 +508,29 @@ func (ndb *nodeDB) DeleteVersionsFrom(version int64, fastMode bool) error {
}

// Delete fast node entries
err = ndb.traverseFastNodes(func(keyWithPrefix, v []byte) error {
key := keyWithPrefix[1:]
fastNode, err := fastnode.DeserializeNode(key, v)
if err != nil {
return err
}

if version <= fastNode.GetVersionLastUpdatedAt() {
if err = ndb.batch.Delete(keyWithPrefix); err != nil {
// Delete step will be skipped with enable fastMode
// with the assumption that the rollback happens offline
// since fast nodes will be reinforced when next start up
if !fastMode {
err = ndb.traverseFastNodes(func(keyWithPrefix, v []byte) error {
key := keyWithPrefix[1:]
fastNode, err := fastnode.DeserializeNode(key, v)
if err != nil {
return err
}
ndb.fastNodeCache.Remove(key)
}
return nil
})

if err != nil {
return err
if version <= fastNode.GetVersionLastUpdatedAt() {
if err = ndb.batch.Delete(keyWithPrefix); err != nil {
return err
}
ndb.fastNodeCache.Remove(key)
}
return nil
})

if err != nil {
return err
}
}

return nil
Expand Down

0 comments on commit 76c0d19

Please sign in to comment.