Server Structure in EVE Online
Massively takes an interesting look at the server model used by EVE Online. It's unusual for a MMOG because it doesn't divide the player load among different servers or "shards." Instead, the same cluster handles the entire EVE universe and all 300,000 subscribers (total; record concurrent load is around 40,000). The EVE Dev Blog recently announced some upgrades to keep things running smoothly and allow for battles involving over 1,000 ships. They call the technology StacklessIO.
In some respects shards can be a good thing. It's nice to have a 'clean sheet of paper' when a new server is brought on-line. With long running shards, the guys at the top of the food chain are very hard to catch up with.
While I personally don't find Eve the game to be very entertaining, I love to here any new information about it. That's partially because stories like this can only come out of a game like Eve, but also because it's pretty much the only MMO right now that's really doing things their own way and not just following in the footsteps of WoW and Everquest before it.
This was one of the largest reasons why I had left EVE. I was in a fairly large alliance. (SMASH) and I had partaken in my fair share of large battles, but we had one with around 400 people total in one system. The game was just in agony trying to run all that.
I actually saved an image of the fight.
http://s219.photobucket.com/albums/cc252/Drakin030/?action=view¤t=MassiveFight.jpg
You will notice to the right, the list of players was cut at the top, the client started to bug out. Also during the battle you really had no control over what was going on. The speed was about a frame every 15-30 seconds. After each from you could be dead....Or another part of your HUD/Overview was missing.
It was battles like that in which I look forward to, but it was to the point where whoever hit the fire button first won, because if you got caught in the stream of lag before you enabled your guns, you would not fire a shot.
I'm glad to see that they are working hard on the performance, I just hope it's good enough to sustain at least a 400 man fight.
The greatest revenge in life is massive success.
Actually, players are divided among servers. Specifically, all players in a single solar system (just "system" in EVE lingo) are isolated to a single thread within a single stackless python process.
This design does not permit real multicore concurrency for a single system. Every player action in space is handled by a single thread. Stackless python provides "microthreads" which gives the illusion of concurrency, but it's really just cooperative multitasking. Lacking real concurrency, EVE can not scale beyond what can be processed in a single thread in a reasonable amount of time. Presently that amounts to about 1000 ships/players.
Microthreads provide none of the concurrency mechanisms (locks, CAS, etc.) that permit threads to safely share data. Thus, the stackless design of EVE can not be scaled using SMP. In my opinion this is a major design flaw of EVE.
The stackless microthread design was chosen for ease of development. Today, that choice plagues the game; it can't be fixed (to permit real concurrency) without a major refactoring of the server side game engine. If EVE will ever scale to what the players actually expect (by virtue of the fact that they don't hesitate to try 1000+ ship battles) then CCP needs to begin thinking about this refactoring; systems should be capable of leveraging multiple cores on demand. That means abandoning microthreads, which is the right decision, because the design imperative behind the choice of stackless (ease of development) is obsolete; half a decade later the new imperative is scalability.
The StacklessIO thing is an improvement to asynchronous IO that CCP deployed earlier this week. It's nice in that it enabled about 1000 players/ships to fight in a system with less "lag" then had been the case with only 500 or so ships. The 32 bit nodes will still crash when they run out of RAM, buy hey, it's an improvement.
Lurking at the bottom of the gravity well, getting old
That review is dead on accurate for solo type players. Still, it's intended to be funny which it succeeds at, even the most hardcore eve fanboy can admit it's mostly true. It just completely misses the good parts of eve.
Everyone should try eve once. There is about a 75% chance you'll loathe it with every fiber of your being and go out of your way to talk about how awful it is whenever it gets mentioned. However, for the people looking for something different in MMOs, eve can be fun on levels untouched by any other.
The reason why EVE is lagging is because the architecture of a sol is not distributed at all. Each sol is a monolithic process.
Any given IBM blade can run any number of sols, but the fewest it can run is 1, not a fraction of 1. Second Life has this same problem, a non-scalable architecture in which several sims can be run on one CPU, but the fewest you can ever run is 1, and it's not possible for N different CPUs to carry the load of 1 sim. That places a limit on the activity within any 1 given sim, or sol here.
When any given sol can be run across N blades in EVE, then we'll have a decent scalable architecture, and not before.
Improving the I/O speed with Infiniband will help, sure, but it's not the answer to non-scalability of sol activity. That can only be done by total redesign of the sol process to make it distributable over an arbitrary number of blades.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
I was a beta tester in Eve, and played the game when it first came out. The game had an amazing community before it was ever released, and there was a lot of anticipation around it. When it opened up, it was this huge world that was mostly empty, and a lot of players went solo, or in small corporations. It had much more of a wild west feeling, especially out in 0 sec. The economy was a grand experiment, and there were many creative ways to turn a profit.
I ended up quitting Eve because I felt that a lot of the things I enjoyed about it were being lost as the game matured. As large corporations and alliances moved into space, we lost the freedom and uncertainty of a lawless land. CCP considered many of the more "creative" ways of making money exploits, and banned players for using them, instead of fixing loopholes in the mechanics which were the root cause. In short, politics and heavy-handed policy enforcement killed the game for me.
Now I'm not saying they went the wrong direction with it. I think it was a natural maturing of the game which led to where it is now. But I do think they lost their most loyal player base by doing that, and made it more of a mainstream endeavor. While I can't fault them for wanting to expand their audience, and pull in some big revenue, personally, I wish they'd taken a different direction. In any case, I'm always interested to hear how "the experiment" is progressing, and I do think they've made a fresh contribution to the gaming industry. It will be interesting to see where their ideas evolve from here.