forked from TrueCloudLab/frostfs-node
634792077e
Includes extending listing methods in the Storage Engine with object types. It allows tuning replication/policer algorithms: container nodes do not remove `LOCK` objects as redundant and try to fulfill `LOCK` placement on the ohter container nodes. Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
25 lines
616 B
Go
25 lines
616 B
Go
package policer
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
objectcore "github.com/nspcc-dev/neofs-node/pkg/core/object"
|
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/engine"
|
|
)
|
|
|
|
type jobQueue struct {
|
|
localStorage *engine.StorageEngine
|
|
}
|
|
|
|
func (q *jobQueue) Select(cursor *engine.Cursor, count uint32) ([]objectcore.AddressWithType, *engine.Cursor, error) {
|
|
var prm engine.ListWithCursorPrm
|
|
prm.WithCursor(cursor)
|
|
prm.WithCount(count)
|
|
|
|
res, err := q.localStorage.ListWithCursor(prm)
|
|
if err != nil {
|
|
return nil, nil, fmt.Errorf("cannot list objects in engine: %w", err)
|
|
}
|
|
|
|
return res.AddressList(), res.Cursor(), nil
|
|
}
|