Skip to content

Conversation

@AlexChaloner
Copy link

This fixes #1015 which notes that the queue pop timer rate is calculated incorrectly.

Fixed by finding the number of new players who have joined the queue - turned out to be pretty simple thanks to some existing logic.

Unit tests:

pipenv run tests tests/unit_tests -k pop
image

pipenv run tests tests/unit_tests
image

Closes #1015


Some notes on the consequences of this change:

  1. This will have negative effects on queue waiting times:
    • The pop timer will be given strictly fewer people (since it no longer sees people unmatched from the previous pop). This results in longer pop times.
    • The queue matching logic becomes more relaxed the more pops have happened for a person, so individually longer pop times can result in multiplicatively longer waiting times for unmatched players.
    • Combined, this will result in longer wait times for players to be matched.
      • Two solutions are (a) Lower the maximum time, perhaps from 90 to 60 seconds, or (b) Add extra calculation to take into account the waiting players. e.g. assume they came in at a flat rate over the maximum pop time.
  2. This was previously mitigated by adding a minimum pop time of 15 seconds (Issue/#970 Prevent queue pop timer from becoming negative #1014). As the calculations should now be more stable, we could decrease the minimum pop time further to e.g. 10 or 5 seconds. At peak times, this might be beneficial.

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.

Queue pop timer rate calculation is wrong

1 participant