Skip to content

Conversation

@otargowski
Copy link
Contributor

@otargowski otargowski commented Dec 3, 2025

Closes #585.

The number of rankingsd instances can be controlled by the RANKINGSD_CONCURRENCY setting.
A value of 0 also works. Logging is done to separate files.
Recalculation errors will now result in an email to the admins (by default). Recalculation will be retried after a few minutes (configurable).

I tested this with 3 rankingsd instances and ~2500 ranking recalculations on a real/proper sio2 instance, and it indeed resulted in a 3x speedup.

The second part of this PR makes invalidation of rankings more selective, so that e.g. for normal contests, when a user's submission is judged, only the rankings for the related round and the whole contest will be invalidated.

This unfortunately requires intervention in custom ranking controllers with modified partial-key logic.

The button(s) for manually invalidating rankings were also improved a bit.

The number of rankingsd instances can be controlled by the
RANKINGSD_CONCURRENCY setting.
@otargowski otargowski self-assigned this Dec 3, 2025
@otargowski otargowski changed the title Parallellize rankings' recalculation Parallellize rankings' recalculation and optimize invalidation Jan 7, 2026
@otargowski otargowski marked this pull request as ready for review January 7, 2026 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Parallelize and optimize recalculating rankings

1 participant