First up: any time you see a developer write a blog that surpasses 2,000 words, you know the shit has really hit the nail on the head. This is a huge explanation of the various issues that have been affecting D2R Items: Resurrected players in recent times, and it's large because the issues aren't caused by a single issue but a mix, which ranges from inability to cope with the game's popularity, its design, and even down to the possibility that players are better at crushing Diablo into dust in 2021.
The primary issue identified by the team concerns the method by which players' characters and data are stored. If you've played an Activision or Blizzard multiplayer game in the past decade then you'll have noticed that you generally login to one of the servers as close to your location as is humanly feasible. It's not an individual server it's a cluster of servers serving an entire area.
However, each of the servers have their own regional databases which store the information of the characters that play on them. This is needed because there's way too many players playing Diablo 2 to just continually transfer their data to a single, central point.
"Most activities in games take place on this local database due to it being quicker, and your character is "locked by the regional database to preserve the individual character record integrity. The global database also comes with backups in the event that the main database fails,"These regional databases frequently send information back to the central database, which means that Blizzard is able to keep a single record (with backups) of your thicc level 88 Barbarians, Necromancers and others. It's all good until the central database gets overload and the entire system, much like those who are working on it, needs time off.
"On the morning of Saturday, Pacific hour, our servers had a global outage as a result of an abrupt increase in traffic. This was a first-time threshold that our servers had not encountered before, and since the beginning of the game," Blizzard explained.This was exacerbated by an update we had rolled out earlier that day to boost performance in the process of game creation. Both factors together overloaded our global database, which caused it to time out. We decided to roll back that Friday update we'd previously deployed, hoping that would ease the burden on our servers as we approached Sunday, while providing us with the opportunity to dig deeper into the root cause.
On Sunday, though it became apparent that what we'd accomplished on Saturday wasn't enough-we saw an even higher increase in traffic, causing us to hit another issue. The game servers were watching the database's absence and attempted to reconnect repeatedly with Diablo 2 Resurrected Items, which meant the database didn't have time to finish the work we'd completed because it was managing a continuous stream connecting attempts from game servers. At this point, we also realized that we could make configuration improvements to our logs of events in the database, that is required to restore an optimal state in the event the database fails, so we completed these and carried out further analysis of the root cause.