Skip to content
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

[Long-term] Optimize the autopush cycle #17

Open
2 of 7 tasks
3vorp opened this issue Sep 12, 2024 · 0 comments
Open
2 of 7 tasks

[Long-term] Optimize the autopush cycle #17

3vorp opened this issue Sep 12, 2024 · 0 comments

Comments

@3vorp
Copy link
Contributor

3vorp commented Sep 12, 2024

The vast majority of the current autopush code, while functional, is really poorly optimized. Almost all requests are blocking, meaning the previous request stops all subsequent requests until it resolves, which is really bad design.

Having looked at the codebase, I've identified a few poorly optimized blocking loops:

  • Result/council messages are posted one by one.
  • Versions are downloaded one by one.
  • Textures are downloaded one by one.
  • Contributions are posted pack by pack.
  • Comparison images have their parts loaded one by one.
  • GitHub pushing is done in a triple-nested for loop completely synchronously.
  • Packs in cron jobs are iterated over synchronously

I'll probably implement these gradually which is why I've formatted this issue as a checklist and as a long-term goal (I'm not sure all of them are necessary and I don't want to cause unnecessary difficulty if I don't need to).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant