satellite/overlay: add AOST to GetParticipatingNodes method
This method is sometimes ends with transaction error. Most probably because it's trying to do full table scan on nodes table which is heavily used. Adding AOST should help with DB contention. Change-Id: Ibd4358d28dc26922b60c6b30862f20e7c0662cd1
This commit is contained in:
parent
2a8e5aecfd
commit
e1215d5da8
@ -29,6 +29,7 @@ type Config struct {
|
|||||||
RepairExcludedCountryCodes []string `help:"list of country codes to exclude nodes from target repair selection" default:"" testDefault:"FR,BE"`
|
RepairExcludedCountryCodes []string `help:"list of country codes to exclude nodes from target repair selection" default:"" testDefault:"FR,BE"`
|
||||||
SendNodeEmails bool `help:"whether to send emails to nodes" default:"false"`
|
SendNodeEmails bool `help:"whether to send emails to nodes" default:"false"`
|
||||||
MinimumNewNodeIDDifficulty int `help:"the minimum node id difficulty required for new nodes. existing nodes remain allowed" devDefault:"0" releaseDefault:"36"`
|
MinimumNewNodeIDDifficulty int `help:"the minimum node id difficulty required for new nodes. existing nodes remain allowed" devDefault:"0" releaseDefault:"36"`
|
||||||
|
AsOfSystemTime time.Duration `help:"default AS OF SYSTEM TIME for service" default:"-10s" testDefault:"0"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AsOfSystemTimeConfig is a configuration struct to enable 'AS OF SYSTEM TIME' for CRDB queries.
|
// AsOfSystemTimeConfig is a configuration struct to enable 'AS OF SYSTEM TIME' for CRDB queries.
|
||||||
|
@ -506,8 +506,7 @@ func (service *Service) GetNodes(ctx context.Context, nodeIDs storj.NodeIDList)
|
|||||||
func (service *Service) GetParticipatingNodes(ctx context.Context) (records []nodeselection.SelectedNode, err error) {
|
func (service *Service) GetParticipatingNodes(ctx context.Context) (records []nodeselection.SelectedNode, err error) {
|
||||||
defer mon.Task()(&ctx)(&err)
|
defer mon.Task()(&ctx)(&err)
|
||||||
|
|
||||||
// TODO add as of system time.
|
return service.db.GetParticipatingNodes(ctx, service.config.Node.OnlineWindow, service.config.AsOfSystemTime)
|
||||||
return service.db.GetParticipatingNodes(ctx, service.config.Node.OnlineWindow, 0)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateReputation updates the DB columns for any of the reputation fields.
|
// UpdateReputation updates the DB columns for any of the reputation fields.
|
||||||
|
3
scripts/testdata/satellite-config.yaml.lock
vendored
3
scripts/testdata/satellite-config.yaml.lock
vendored
@ -802,6 +802,9 @@ identity.key-path: /root/.local/share/storj/identity/satellite/identity.key
|
|||||||
# how many concurrent orders to process at once. zero is unlimited
|
# how many concurrent orders to process at once. zero is unlimited
|
||||||
# orders.orders-semaphore-size: 2
|
# orders.orders-semaphore-size: 2
|
||||||
|
|
||||||
|
# default AS OF SYSTEM TIME for service
|
||||||
|
# overlay.as-of-system-time: -10s
|
||||||
|
|
||||||
# the location of the maxmind database containing geoip country information
|
# the location of the maxmind database containing geoip country information
|
||||||
# overlay.geo-ip.db: ""
|
# overlay.geo-ip.db: ""
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user