Tuesday, December 13th 2011

I’m still trying to figure out ways to improve the performance of game worlds like Tempelhof, which is currently 6 hours behind schedule for no obvious reason.

Because we do not know exactly what’s causing these problems I’m basically shooting for anything that might help. Most of my dev-time today was spent on optimizing the way localized names (for countries and the likes) are loaded and cached. Although probably not much of an issue performance-wise, it was causing a hell of a lot database queries for no reason, so it definitely looks nicer on the logs now.

Next on my list is an optimization of the way slot matrices are stored. Some users reported that they were experiencing slow responses in flight scheduling so I took a look at that and identified two potential causes: One is the complexity of flight scheduling as such (not much that could be done about it except maybe optimizing queries), the other is a potential locking problem affecting slot matrices. Because there are other long-running background tasks accessing the same data as flight scheduling, I think that this might cause annoying wait-times until the respective resources are freed up by who- or whatever is using it. It will be a shot from the hip though and we’ll have to see whether it helps under production conditions.

Both changes will most likely be rolled-out tomorrow after they’ve been cleaned up an tested.