[vworld-tech] Maximum Latency? + per-task accountability

ceo ceo at grexengine.com
Fri Feb 27 02:50:11 PST 2004

Jim Purbrick wrote:
> At first glance this looks very like the Warhammer approach. Currently we
> have "stages" for network I/O, database I/O and game event processing. The
> SEDA literature looks like it includes lots of interesting and applicable
> stuff, thanks for the reference.

SEDA's papers focus largely on webservers, which tend to require very 
few stages. My understanding is that most staged software servers have 
quite a lot of stages - since you can only fine-tune and monitor at the 
stage level, you want more stages rather than fewer.

For an MMORPG deployed on GE, you typically have a single client request 
go through approximately 5 to 10 stages. Off the top of my head, you'd 
expect about 20 stages in total in such a game (although of course no 
request woul ever use all of them!), but it depends very much on how the 
dev's choose to use the architecture :).

For instance, our preferred "game-event processing" sub-system has 
almost five stages of it's own. This is partly a reflection of the fact 
that we're providing middleware (needs to be generic in the right 
places) - but since all sub-systems are pluggable, we have been able to 
aim it towards fairly precise use-cases (hence it's not *very* generic).

> I'd be interested in hearing about which bits of SEDA you've used and which
> you've left in academia.

Sorry, but anything interesting I could say there is confidential 
(either customers-only or NDA). :( By the time you've read through the 
SEDA papers, anything I *can* say on this w.r.t. GE is going to be stuff 
you've realised or read already...

One alteration I can suggest is optimizing the message passing between 
stages. It can be inefficient and end up with a lot of boiler-plate code 
if you can't share or forward messages through stages (I'm assuming your 
stages are across a cluster, so it's not about simply passing a pointer 
:)). I haven't recently looked at the SEDA implementations of this, so 
YMMV, but IIRC they didn't really address this issue. I have - in one 
case - seen it come up as a significant problem.


More information about the vworld-tech mailing list