Skip to content

Job throughput with concurrency limits #1145

@dm5991

Description

@dm5991

Hi, we recently moved to River Pro version and decided to add global limits for one of our queues. The queue is processed by 4 client instances that each have 10 max workers and the only change in the configuration is the added global limit of 40.

The jobs themselves are pretty fast at an average of ~5 seconds. Before adding the global limits we used to see a throughput of ~33k jobs per hour and afterwards it dropped to ~17k per hour. A couple of immediate tests with a larger worker pool didn't make any difference.

We would expect a slowdown to a certain degree from the added coordination overhead combined with fast jobs but this seems a bit extreme.
Do you have any info on what the expected throughput slowdowns are when using concurrency limits? Happy to give more info if it helps, thanks!

River versions:

	github.com/riverqueue/river v0.30.2
	github.com/riverqueue/river/riverdriver/riverpgxv5 v0.30.2

	riverqueue.com/riverpro v0.21.0
	riverqueue.com/riverpro/driver/riverpropgxv5 v0.21.0

Metadata

Metadata

Assignees

Labels

proIssues specific to River Pro

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions