Skip to content

Commit e63bee3

Browse files
committed
storage/metabase: Drop unused IterateCoveredByTombstones method
Signed-off-by: Leonard Lyubich <[email protected]>
1 parent bb63c0d commit e63bee3

File tree

2 files changed

+0
-98
lines changed

2 files changed

+0
-98
lines changed

pkg/local_object_storage/metabase/iterators.go

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"bytes"
55
"encoding/binary"
66
"errors"
7-
"fmt"
87
"math"
98

109
islices "github.com/nspcc-dev/neofs-node/internal/slices"
@@ -177,68 +176,6 @@ func (db *DB) iterateExpired(tx *bbolt.Tx, curEpoch uint64, h ExpiredObjectHandl
177176
return err
178177
}
179178

180-
// IterateCoveredByTombstones iterates over all objects in DB which are covered
181-
// by tombstone with string address from tss. Locked objects are not included
182-
// (do not confuse with objects of type LOCK).
183-
//
184-
// If h returns ErrInterruptIterator, nil returns immediately.
185-
// Returns other errors of h directly.
186-
//
187-
// Does not modify tss.
188-
func (db *DB) IterateCoveredByTombstones(tss map[string]oid.Address, h func(oid.Address) error) error {
189-
db.modeMtx.RLock()
190-
defer db.modeMtx.RUnlock()
191-
192-
if db.mode.NoMetabase() {
193-
return ErrDegradedMode
194-
}
195-
196-
currEpoch := db.epochState.CurrentEpoch()
197-
198-
return db.boltDB.View(func(tx *bbolt.Tx) error {
199-
return db.iterateCoveredByTombstones(tx, currEpoch, tss, h)
200-
})
201-
}
202-
203-
func (db *DB) iterateCoveredByTombstones(tx *bbolt.Tx, currEpoch uint64, tss map[string]oid.Address, h func(oid.Address) error) error {
204-
bktGraveyard := tx.Bucket(graveyardBucketName)
205-
206-
err := bktGraveyard.ForEach(func(k, v []byte) error {
207-
var addr oid.Address
208-
if err := decodeAddressFromKey(&addr, v[:addressKeySize]); err != nil {
209-
return err
210-
}
211-
if _, ok := tss[addr.EncodeToString()]; ok {
212-
var addr oid.Address
213-
214-
err := decodeAddressFromKey(&addr, k)
215-
if err != nil {
216-
return fmt.Errorf("could not parse address of the object under tombstone: %w", err)
217-
}
218-
219-
metaBucket := tx.Bucket(metaBucketKey(addr.Container()))
220-
var metaCursor *bbolt.Cursor
221-
if metaBucket != nil {
222-
metaCursor = metaBucket.Cursor()
223-
}
224-
225-
if objectLocked(tx, currEpoch, metaCursor, addr.Container(), addr.Object()) {
226-
return nil
227-
}
228-
229-
return h(addr)
230-
}
231-
232-
return nil
233-
})
234-
235-
if errors.Is(err, ErrInterruptIterator) {
236-
err = nil
237-
}
238-
239-
return err
240-
}
241-
242179
func mkFilterPhysicalPrefix() []byte {
243180
var prefix = make([]byte, 1+len(object.FilterPhysical)+1+len(binPropMarker)+1)
244181

pkg/local_object_storage/metabase/iterators_test.go

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -62,38 +62,3 @@ func putWithExpiration(t *testing.T, db *meta.DB, typ object.Type, expiresAt uin
6262

6363
return object2.AddressOf(obj)
6464
}
65-
66-
func TestDB_IterateCoveredByTombstones(t *testing.T) {
67-
db := newDB(t)
68-
69-
ts := oidtest.Address()
70-
protected1 := oidtest.Address()
71-
protected2 := oidtest.Address()
72-
protectedLocked := oidtest.Address()
73-
garbage := oidtest.Address()
74-
75-
var err error
76-
77-
_, _, err = db.Inhume(ts, 0, false, protected1, protected2, protectedLocked)
78-
require.NoError(t, err)
79-
80-
_, _, err = db.MarkGarbage(false, false, garbage)
81-
require.NoError(t, err)
82-
83-
var handled []oid.Address
84-
85-
tss := map[string]oid.Address{
86-
ts.EncodeToString(): ts,
87-
}
88-
89-
err = db.IterateCoveredByTombstones(tss, func(addr oid.Address) error {
90-
handled = append(handled, addr)
91-
return nil
92-
})
93-
require.NoError(t, err)
94-
95-
require.Len(t, handled, 3)
96-
require.Contains(t, handled, protected1)
97-
require.Contains(t, handled, protected2)
98-
require.Contains(t, handled, protectedLocked)
99-
}

0 commit comments

Comments
 (0)