-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enforce pagination of resource listings from the server-side #550
Comments
Unfortunately, it seems this is only possible in v2.0 in the spec. What we can do in the meantime is to implement pagination in clients so that if a back-end supports it, it is automatically used. I see issues in Web Editor and Python Client, but we should probably open issues in JS and R (and Julia if they have job listings implemented). Opened one for JS: Open-EO/openeo-js-client#64 |
We discussed potential default values for the clients and thought 100 or maybe 50 seem to be reasonable defaults. |
Another pagination thing that might deserve some clarification in current spec is how jobs are partitioned in pages. |
That's up to the backend to decide, but I guess it makes most sense for backends to sort by creation or last update date. I guess we can add a recommendation, but I'm not sure what the best recommendation is :-) |
Usability- and user-experience-wise I would require to show most recent jobs first, those are the jobs users are most interested in in practice, so you don't want them to have to wait for possibly tens of HTTP roundtrips just to get the most interesting page |
Yeah, but most recent for me would mean sorted by "updated". |
with recent I mean "by created" here (not "updated"), indeed because it is a required value |
created is probably also better because it's stable so that entries don't jump between pages... okay, convinced ;-) |
For "user-created content" (batch jobs, UDPs, ...) I would go for "more recently created first" as much as possible, because that gives best user experience. |
That opens up the question whether we should add a sorting parameter ;-) For example, for UDPs I could see that alphabetical would also be sorted by ID instead of creation. UDPs are not that different from processes. Similarly, files could also be sorted by path, which I would find more user-friendly ;-) So I'm not sure I necessarily agree with sorting by creation for all user-submitted resources. |
Yes, in the long term a configurable sorting parameter (and direction) might become important, but I don't think we should wait for that to settle, we can already set some recommendations without that. The main triggering issue here is that there are users that create/handle a lot of jobs (hundreds, thousands, ...). With all other resources there is not a comparable scaling issue as far as I know. From a pragmatic, incremental viewpoint, I see it like this:
|
Opened a separate issue for sorting: #555 |
Context: we're battling performance issues caused by job listings from user with a lot of jobs, so we're looking into implementing/improving pagination of job listings.
Some notes about what the spec currently states about pagination of job listings:
In nutshell: pagination is optional and should be opt-in from client side (by setting
limit
param).I'm afraid however (as we currently see in practice) that this is not a sustainable behavior: the backend must also be able to limit the job listing and enable pagination. It's not uncommon for larger use cases to have users with multiple thousands of jobs, and fetching all the related metadata/status of all these jobs regularly is quite expensive, especially as most users just look at, say the last 10 jobs anyway.
Some more concrete questions:
limit
? There doesn't seem like a solution that is both pragmatic and follows the spec to the letter.limit
value, e.g. 100, which is different from "unset by default" in the spec?The text was updated successfully, but these errors were encountered: