In brief, the way we currently handle matchmaking interval is that our servers continuously run ranked matches when not busy doing other things. The number of ranked matches that are played by a given algo is essentially a function of how many servers we have running and the number of active algos that are playing ranked matches.
From what I have seen in the past, algos have gotten around 15-35 games per day, which could vary significantly based on Elo (High Elo players would have fewer people to match with, 1500 algos would match with new algo’s burst matches fairly often)
We expect this number to now be consistently somewhere in the 20s
The matches were played ms apart: 2018-11-15T09:04:24.396Z and 2018-11-15T09:04:24.377Z
Since lastMatchmakingAttempt doesn’t change between matches, this looks like a timing issue where the attempt isn’t in updated “soon” enough.
I’d guess it’s quite rare right now, but if algos start running low on opponents to be matched with I wonder if the frequency of this bug would increase.
This appears to be a race condition. Because matchmaking no longer uses randomness and we choose matches more intelligently, if two servers ask for a new ranked match for them to play at around the same time, the database will be in the same state, and the same match will be created for both servers.
As a very quick fix, i’m going to add some fuzz to the choice process so the chances that this happens is dramatically reduced. We are looking into better solutions. It appears that this was always an issue, but was extremely unlikely in the past do to randomness in matchmaking.
Upon investigating further, we found that creating a proper solution to this was less intensive then we thought, it should be fixed later today - without adding any randomness to matchmaking.
Edit: This should be deployed, you shouldn’t see anymore duplicate matches
We fixed an issue that would make this happen very often, but this might be the race condition I originally theorized existed. Ill investigate on Monday.