If you're a regular Dota 2 player you'll be aware that from 11:00 AM tomorrow the Dota 2 Game Coordinator will be going down for maintenance for approximately an hour. To oversimplify things, it basically means you won't be able to find new matches until everything comes back up (although you'll be able to finish existing games).
But a cool part of the upcoming downtime is what they're doing to fix a small problem.
According to a post on the Dota 2 developer forum, back when things were in development it was decided that all match IDs would be stored in 32-bit integers. They figured an upgrade would be due eventually, but the available room within 2^31 (which is just over 2.1 billion) meant any update would be a long time coming.
In case you're thinking 2^31 doesn't quite add up to the maximum amount of numbers you can store in 32-bit integers, you'd be right. Here's the explanation why:
Our SQL server does not have an unsigned 32-bit data type, only a signed one, which means the Match ID can really only go up to 2^31 before it looks like a negative number to SQL. That cut the Match ID namespace in half. Also, we made some changes that greatly accelerated the rate of exhaustion of the namespace, such as assigning the ID as soon as the match came out of matchmaking, where it would be consumed even if the match was never actually played, and assigning all private lobbies and even offline bot matches a Match ID.
The vast number of Dota 2 matches being played on a daily basis has meant that Valve are running out of available IDs before their SQL server gets cranky — so a patch is required.
After the update, all match IDs will be stored in 64-bit integers which post cheekily predicts won't require updating until 2038. But given how popular Dota 2 and MOBAs are — even if League of Legends has the bigger audience — a 128-integer upgrade will probably happen well before then.