Hey folks,
I wanted to stop by and share with you a little of the “why” involved in the upcoming 24hr maintenance window for Burning Crusade Anniversary, as it is, quite rare for us to have a downtime this long.
WARNING! This post contains no useful information at all! I mean it! This is just potentially interesting insight being shared for anyone who enjoys this sort of thing.
When Classic approached the Server & Live Ops teams about launching this new thing called Anniversary, there was a really, really big elephant in the room with us, World of Warcrafts return to China. Getting China back up and running again was the largest infrastructure challenge we’ve faced since… Maybe ever, Classic launch was bigger but starting fresh in China presented a ton of unique challenges. To facilitate the Classic teams needs, we had to get creative, instead of standing up an entirely new World of Warcraft environment as we would normally for this sort of thing, Classic Anniversary was run as just some new realms running in our existing Classic Era environment with a little bit of code to stop Anniversary and Classic Era clashing. This thin wall has been breached a few times, most notably you all likely remember when some Season of Discovery players managed to infiltrate Alterac Valley Anniversary to admittedly some fairly comical results. There might be just a tiny power gap between Season of Discovery and Era characters… Anyway, perfect, by going this route it allowed us to launch Anniversary with minimized impact to everyone’s schedules during what was a very bonkers time.
When we did this, we knew we were kicking a can down the road. Classic Era will continue to be Classic Era forever more, but our new Anniversary realms would eventually progress to Burning Crusade. You can’t have two separate versions of World of Warcraft running in the same environment, we would have to do something to move these realms into their own environment down the line so they could progress to Burning Crusade.
This brings us to the present, we finally caught up with that kicked can and its time to pay the piper so to speak. When we looked into available options we again found ourselves under the gun, we were busy launching one of the largest database focused features we’ve ever made, Player Housing, and the scope of work was larger than expected (Anniversary was very popular). One of the most likely options, a Connected Realms style move was off the table as we discovered the code and scripts that power that process were incredibly out of date and it would take more rounds of testing than we had time for to resurrect them.
Another option was we could effectively just perform a few million character transfers and copy everyone over to the new realms in the new environment, but this isn’t very player friendly as Guilds would be disbanded and name collisions would be rife. A crack team of engineers got together to brain storm solutions that would be least impactful to you the players while still possible with the time we had available. Good news, they found a solution that should be entirely transparent to you, your characters, your mail, your guilds, everything will be exactly as you left them on your last day in Classic Era when you login to Burning Crusade pre-patch.
The way we’re achieving this pretty out of the box, we’re calling "persistent in place’ which likely won’t mean much at all to anyone but we’re in full sharing mode anyway. Data in World of Warcraft lives in three databases, the Persistent database (your characters, guilds, items etc), the Account database (account level things like achievements) and finally the Regional database (handles region wide things like Token, character numbers on the Realm List). On Tuesday, we will be copying all your Account and Regional data to the new environments database, that’s what will be taking up the majority of the downtime. As for your Persistent data, that’s where we’re bending some long establish rules for how we do World of Warcraft infrastructure.
These “new” realms on this new environment will be using their old Persistent data, on their old database that is also still busy serving Classic Era. This is new, we’ve not done anything like this before, when the database engineers pitched this plan the initial reaction was, "wait that really works? but testing has proven that yep, it really does! For any database minded folks out there, we’re talking two different versions of World of Warcraft reading and writing to the same database when normally each environment would have its own database. Thankfully all our players data is tagged with the appropriate environment it actually applies to so all our queries just happily continue to work. We’ve only had to update a couple of things to be aware to look up only data for their specific environment instead of just assuming the database they’re connecting to only contains things it cares about. Hurray!
What does all this mean for you? Ultimately, nothing at all, on Tuesday when realms come up, you will see your old realms, same names, you’ll find your same characters, same everything. So in advance, thank you for bearing with us during this exceptional downtime event, this is a one-time move that will not need to be repeated again for Classic Anniversary.
Hopefully you found any value in this wall of word soup, we’ll see you all Tuesday!
/Fwoibles
