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

Jim Purbrick Jpurbrick at climax.co.uk
Fri Feb 27 02:31:46 PST 2004

> Ideally you want an architecture that is designed to do this, 
> and then 
> it becomes close ot trivial. Once class of architectures that 
> do this is 
> "staged", of which there are a few examples.
> Look at SEDA for a start (google or there's a direct link 
> from the page 
> I quoted months ago).

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.

The only reason that adding latency management support was non-trivial was
that I wanted to collection information on a message's progress between
stages and servers.
> We made the grexengine a staged architecture from day one partly for 
> this accountability reason (along with ease-of-tweaking of 
> sub-systems 
> for performance/bottleneck resolution), although it's noticeably 
> different from SEDA at a couple of key points. SEDA is much 
> more "pure" 
> (as befits a research system).

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

> PS how come you're only looking at internal-RTT latency now? 
> (nb: that's 
> the term we use for "time from the moment the client request 
> arrives at 
> the cluster to the moment the response leaves the cluster") I thought 
> you'd looked at this area a long time ago (IIRC from earlier MUD-DEV 
> posts of yours)

I've looked at it before, but I'm about to start looking at pushing the
prioritisation we're using in the UDP layer throughout the system, so high
priority requests and events are treated as high priority at each stage, not
just by the UDP protocol. I wanted more detailed latency measurements to see
what effect the prioritisation is having.

More information about the vworld-tech mailing list