forked from TrueCloudLab/frostfs-node
[#182] Reuse search filter in policer
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
parent
2e605b2435
commit
a14bb6292b
1 changed files with 12 additions and 4 deletions
|
@ -9,16 +9,15 @@ type jobQueue struct {
|
||||||
localStorage *localstore.Storage
|
localStorage *localstore.Storage
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var jobFilter object.SearchFilters
|
||||||
|
|
||||||
func (q *jobQueue) Select(limit int) ([]*object.Address, error) {
|
func (q *jobQueue) Select(limit int) ([]*object.Address, error) {
|
||||||
// TODO: optimize the logic for selecting objects
|
// TODO: optimize the logic for selecting objects
|
||||||
// We can prioritize objects for migration, newly arrived objects, etc.
|
// We can prioritize objects for migration, newly arrived objects, etc.
|
||||||
// It is recommended to make changes after updating the metabase
|
// It is recommended to make changes after updating the metabase
|
||||||
|
|
||||||
jobFilter := object.NewSearchFilters()
|
|
||||||
jobFilter.AddPhyFilter()
|
|
||||||
|
|
||||||
// FIXME: add the ability to limit Select result
|
// FIXME: add the ability to limit Select result
|
||||||
res, err := q.localStorage.Select(jobFilter)
|
res, err := q.localStorage.Select(getJobFilter())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -29,3 +28,12 @@ func (q *jobQueue) Select(limit int) ([]*object.Address, error) {
|
||||||
|
|
||||||
return res[:limit], nil
|
return res[:limit], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getJobFilter is a getter for a singleton instance.
|
||||||
|
func getJobFilter() object.SearchFilters {
|
||||||
|
if len(jobFilter) == 0 {
|
||||||
|
jobFilter.AddPhyFilter() // this initiates a list of filters
|
||||||
|
}
|
||||||
|
|
||||||
|
return jobFilter
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue