-
Notifications
You must be signed in to change notification settings - Fork 13
Description
This is something that pops up regularly while working on client-side job managers: how many jobs can a user create, how many jobs can run in parallel, ... ?
At the moment, we have in VITO projects some adhoc and per-user configs in the backend and user scripts to steer job managers that create and start tens/hundreds of jobs, but that involves poorly documented and non-standard aligning of various tools.
I think it makes sense to add something to the openEO API that allows backends to expose global or per-user capacity/limits for the number of created jobs, number of concurrently running jobs, etc. That would allow clients to handle this in a cleaner and more transparent way. With the current API, the only official "UI" is basically: just try starting jobs until you get an error, and make sure to backoff/retry properly in some sense.
To give a bit an idea about what I think could be covered here, a non-exhaustive list of things that could be included:
- maximum number of concurrently running batch jobs
- currently remaining capacity for concurrently running batch jobs
- maximum number and currently remaining capacity for number of created (not started) batch jobs
- maximum number and currently remaining capacity of concurrent sync requests
These numbers would be just recommendations to follow for clients/tools that support it. Going over limits would just trigger the errors we already have.
I'm not sure yet what would be a good place to expose:
- new endpoint
- main capabilities doc
GET / - part of response on
GET /jobsand related? - ...?
Note that this would also be interesting in a federation context to steer job distribution.