[comp.sys.isis] ISIS RPC Performance figures

ken@gvax.cs.cornell.edu (Ken Birman) (11/21/89)

I got some email asking me to clarify a few things:

1) All of these figures are for the new BYPASS mode; in the existing
   system performance is substantially worse.  I don't have figures
   comparing "BYPASS" and "non-BYPASS" right now, but will include this
   in the eventual article on the BYPASS facility

2) BYPASS mode doesn't do piggybacking in its CBCAST implementation, so
   when I refer to overhead on a 2 byte packet I meant overhead due to
   fields ISIS puts in (destination addresses, sender, sequence number,
   acknowledgement information, sequence numbers used by CBCAST as part
   of the BYPASS protocol, activity id, etc).  The amount of this stuff
   varies but because an inter-site packet is really a message containing
   other messages, and because each has its own header, 220 bytes isn't
   such a huge amount of overhead (this is in response to a comment that
   "200 bytes of overhead on a 2 byte message sounds like a bug to me").
   The overhead is fairly constant regardless of how big the message gets.

3) select, sendto, sendmsg and recvfrom are UNIX system calls.  sendto 
   wants a buffer with the data contiguous in it while sendmsg takes a list
   of <base,len> pairs and "gathers" the data.  ISIS generates a <base,len>
   pair for each message/embedded message it sends and for each indirect
   reference to data (from the new %*D[] format item).  My messages were
   generally a single message enclosing a single "user" message with a 
   single indirect reference field, hence they typically looked like:
	<base0,128><base1,128><data_ptr,data_len>
   this is why I used sendmsg, although the 1.4ms overhead of doing so (in
   both directions, since my RPC and its reply had the same size) was so high
   that we might be better off using sendto all the time, and copying first.

4) Yes, my table was missing a column of information -- the UDP times.  I
   decided the column was confusing in my raw data and deleted it.  Sorry if
   this made the message itself confusing.  Those numbers weren't directly
   computed as part of the test, in any case, whereas the rest of the table
   is the output of an actual run of a test program.