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
|
||||
}
|
||||
|
||||
var jobFilter object.SearchFilters
|
||||
|
||||
func (q *jobQueue) Select(limit int) ([]*object.Address, error) {
|
||||
// TODO: optimize the logic for selecting objects
|
||||
// We can prioritize objects for migration, newly arrived objects, etc.
|
||||
// It is recommended to make changes after updating the metabase
|
||||
|
||||
jobFilter := object.NewSearchFilters()
|
||||
jobFilter.AddPhyFilter()
|
||||
|
||||
// FIXME: add the ability to limit Select result
|
||||
res, err := q.localStorage.Select(jobFilter)
|
||||
res, err := q.localStorage.Select(getJobFilter())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -29,3 +28,12 @@ func (q *jobQueue) Select(limit int) ([]*object.Address, error) {
|
|||
|
||||
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