Open
Description
Subtasks created post analysis
Specific tasks created off this analysis (and others related created previously), in order of fix priority:
- Don't fetch base revision if update is not partial: [performance] no need to fetch base revision during
update
if not doing a partial update #21 (super easy, high impact on fetch) - Reduce calls to _get_owner and _get_repo by caching them: [optimization] GitHub: Reduce number of API calls by caching #16 (easy at least initially, medium impact but affects almost all actions, so high over all impact)
- Investigate generating owner and repo objects instead of fetching from GitHub: [performance] Investigate generating Organization and Repository objects vs. fetching from GitHub #24 (high impact, low cost to investigate, either easily doable or impossible)
- Investigate all instances where
_completeIfNeeded()
is triggered to see if we can avoid them by providing defaults: [performance] Eliminate calls to PyGithub__completeIfNeeded
#23 (low complexity, impact unsure, anywhere between non existent to medium) - List tags in ckanext-versioning asynchronously: [performance] Tag / version listing should be done via ajax ckanext-versioning#38 (prob. low cost, high impact on UX for a very commonly used page)
- Switch tag listing to GraphQL: Tag listing is slow and will not scale (N+1 problem) #3 (medium impact, high cost of getting the GraphQL infra working, probably 1-2 days. Useful because doing GraphQL can help in other places to.)
- Investigate strategies for reducing number of calls during create: [performance] Look into reducing number of API calls during create #22 (unknown complexity, a lot of investigation work to do, best done after we already do something in GraphQL. If implemented fully this will have solid impact in
create
but not sure it can be done).
Original Bug Report
I'm using the extension with the Github backend and the time it takes to do the Github API calls to fetch/create/update is really long and it is not good for the overall UX of the extension (I might say quite unusable).
The overall delay only happens when using github
as backend since using the filesystem
backend doesn't has this overhead of time. For now I'm executing it locally but I don't see too much reasons for this to be better when deploying on services.
Metadata
Metadata
Assignees
Labels
No labels