cms-dev / cms-dev/cms

Make token computations more efficient

Open
#234 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1k
Forks
412
Avg merge
6d 10h
Merged PRs (30d)
3

Description

At the moment the Contest._tokens_available method takes O(len(token_timestamps)) time to produce the result. Even if that list is usually quite short (maximum 20 elements in all the competitions I know about), the method is called every time the submission details page is rendered and therefore it may make sense to cache the result, to avoid DoS attacks.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Contest._tokens_available method and the submission details page call path. Determine how token_timestamps changes and what behavior the current computation guarantees. Done means avoiding repeated O(len(token_timestamps)) work while preserving the existing result and preventing stale values; add or update tests for the method if the repository provides them.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.