[Biojava-l] Dazzle server-client bottlenecks

David Huen smh1008@cus.cam.ac.uk
Sat, 21 Jul 2001 15:46:09 +0100 (BST)


I've been looking into identifying Dazzle performance bottlenecks.

I have excluded lookup times required to return sequence information from
the datasource to Dazzle itself by inducing Ragbag to cache the seqeunces
used in the test.

Times have been measured in FeatureFetcher doGet and DASSequence
getTrueSymbols calls.  The total time spent in the method and the time
between initiating connect() and getting back data has also been
measured in both methods.

Server hardware is PIII/733, 1GB RAM, U160 drives. Client is dual
Celeron/450, 256 MB RAM. The link is via ntl cablemodem (128 Mbit/s max
up/ 512 Mbit/s max down).  Test was performed on a weekend when network
activity is low and the server is also mostly idle.

For FeatureFetcher, a typical call takes between 200-500 ms. The reply
time is 50-100 ms.

For getTrueSymbols, the typical call takes 3-4 secs.  The reply time is
typically 100 ms.

Looks like I've wasted my time writing the gzip compression code. ;-).
Wonder whether it'll be worth committing at all! Transmission time doesn't
seem to be a significant part of the latencies in the DAS protocol.  With
slower phone modems, the transmission times may be 10x worse but that's
still  0.5-1.0 secs only disregarding decompression times.

The dominant part of the latencies appear to in constructing data
structures following receiving the data from the server.  These seem
particularly significant in the case of getTrueSymbols but then the
amounts of data returned from one of these calls is likely to be large.
Presumably these times comprise the duration taken to parse the reply and
construct the data structures.

It looks like that's where we'll need to speed up our code.

Regards,
David Huen