refactor!: remove 'keep-every' from pruning (#11152)
This commit is contained in:
@@ -428,14 +428,7 @@ func (rs *Store) Commit() types.CommitID {
|
||||
// be pruned, where pruneHeight = (commitHeight - 1) - KeepRecent.
|
||||
if int64(rs.pruningOpts.KeepRecent) < previousHeight {
|
||||
pruneHeight := previousHeight - int64(rs.pruningOpts.KeepRecent)
|
||||
// We consider this height to be pruned iff:
|
||||
//
|
||||
// - KeepEvery is zero as that means that all heights should be pruned.
|
||||
// - KeepEvery % (height - KeepRecent) != 0 as that means the height is not
|
||||
// a 'snapshot' height.
|
||||
if rs.pruningOpts.KeepEvery == 0 || pruneHeight%int64(rs.pruningOpts.KeepEvery) != 0 {
|
||||
rs.pruneHeights = append(rs.pruneHeights, pruneHeight)
|
||||
}
|
||||
rs.pruneHeights = append(rs.pruneHeights, pruneHeight)
|
||||
}
|
||||
|
||||
// batch prune if the current height is a pruning interval height
|
||||
|
||||
@@ -329,7 +329,6 @@ func TestMultiStoreRestart(t *testing.T) {
|
||||
db := dbm.NewMemDB()
|
||||
pruning := types.PruningOptions{
|
||||
KeepRecent: 2,
|
||||
KeepEvery: 3,
|
||||
Interval: 1,
|
||||
}
|
||||
multi := newMultiStoreWithMounts(db, pruning)
|
||||
@@ -488,9 +487,9 @@ func TestMultiStore_Pruning(t *testing.T) {
|
||||
}{
|
||||
{"prune nothing", 10, types.PruneNothing, nil, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}},
|
||||
{"prune everything", 10, types.PruneEverything, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9}, []int64{10}},
|
||||
{"prune some; no batch", 10, types.NewPruningOptions(2, 3, 1), []int64{1, 2, 4, 5, 7}, []int64{3, 6, 8, 9, 10}},
|
||||
{"prune some; small batch", 10, types.NewPruningOptions(2, 3, 3), []int64{1, 2, 4, 5}, []int64{3, 6, 7, 8, 9, 10}},
|
||||
{"prune some; large batch", 10, types.NewPruningOptions(2, 3, 11), nil, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}},
|
||||
{"prune some; no batch", 10, types.NewPruningOptions(2, 1), []int64{1, 2, 4, 5, 7}, []int64{3, 6, 8, 9, 10}},
|
||||
{"prune some; small batch", 10, types.NewPruningOptions(2, 3), []int64{1, 2, 4, 5}, []int64{3, 6, 7, 8, 9, 10}},
|
||||
{"prune some; large batch", 10, types.NewPruningOptions(2, 11), nil, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
@@ -520,7 +519,7 @@ func TestMultiStore_Pruning(t *testing.T) {
|
||||
|
||||
func TestMultiStore_PruningRestart(t *testing.T) {
|
||||
db := dbm.NewMemDB()
|
||||
ms := newMultiStoreWithMounts(db, types.NewPruningOptions(2, 3, 11))
|
||||
ms := newMultiStoreWithMounts(db, types.NewPruningOptions(2, 11))
|
||||
require.NoError(t, ms.LoadLatestVersion())
|
||||
|
||||
// Commit enough to build up heights to prune, where on the next block we should
|
||||
@@ -534,13 +533,13 @@ func TestMultiStore_PruningRestart(t *testing.T) {
|
||||
// ensure we've persisted the current batch of heights to prune to the store's DB
|
||||
ph, err := getPruningHeights(ms.db)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, pruneHeights, ph)
|
||||
require.Equal(t, []int64{1, 2, 3, 4, 5, 6, 7}, ph)
|
||||
|
||||
// "restart"
|
||||
ms = newMultiStoreWithMounts(db, types.NewPruningOptions(2, 3, 11))
|
||||
ms = newMultiStoreWithMounts(db, types.NewPruningOptions(2, 11))
|
||||
err = ms.LoadLatestVersion()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, pruneHeights, ms.pruneHeights)
|
||||
require.Equal(t, []int64{1, 2, 3, 4, 5, 6, 7}, ms.pruneHeights)
|
||||
|
||||
// commit one more block and ensure the heights have been pruned
|
||||
ms.Commit()
|
||||
|
||||
Reference in New Issue
Block a user