IMO, writing this large code revamp wouldn't really be well worth the effort. This would only be a minor tweak for server performance and mainly only in the form of freeing up a few MBs of RAM. This might be good if you are counting every megabyte on a system with low RAM, but even when I break 120+, I am still only using maybe 1GB max without paging at all (and that includes what Linux is using).
If you DO want to rewrite the launcher system, I think the most important part that needs attention is the way that ports are used. Ports get used higher and higher each time a zone crashes or is restarted completely. This means you must have much more ports open than you have zones running (total dynamic zones) otherwise you risk new zones not being able to start when they should.
And if you were going to check into fixing how ports work, you might as well stick something in there to make sure that multiple zone servers can work together on the same network. The way to do this would be a way for dynamic (and even static if possible) could be assigned to start ONLY on certain port ranges. So, if a zone is started on zone server B, it would be assigned to the port ranges that are forwarded to server B. As it is now, they can be assigned to either one by the launcher and it makes running multiple zones servers impossible unless you want to risk locking out players every time a zone crashes.
I am not saying that your original idea is a bad one. I think it actually sounds like a good idea if you could do it without too much work. But, it really has minimal impact and if you were going to put time into zone launching, there are bigger things that could use fixing IMO. Of course, a fix is a fix, and we are happy with whatever anyone wants to work on hehe.
|