>one thing that I am not understanding from the docs is the difference >between var_size and var_length in the message header. I understand >var_len is the byte count (rounded up to a boundary of 8) of the >message. var_size reads to be much larger. The document seems to >indicate that the message block is much larger than the actual number >of bytes needed however I can't believe that dummy bytes are sent as >that would be a huge waste of bandwidth.
The network protocol is packet based, not stream based. And packets have a maximal size, the kernel parameter PACKET_SIZE. And any *_size is the possible size of this packet/segment/part, any *_length is the number of bytes actually used.
In the releases up to 7.4, the kernel wouldn't overwrite the request, so clients can't use the complete PACKET_SIZE. They have to subtract
- the size of the RTE header (request) (for the transport layer protocol)
- the size of the RTE header (reply)
- a 'suitable' for the kernel reply, at least as much to place a part for an error message
So for 7.4, a package really looks like this after the request has been returned:
|rte request header|sql request|rte reply header|sql reply|
Hint: test your library with various PACKET_SIZE configurations, especially when you come to the handling of LONG columns.
Daniel Dittmar
-- Daniel Dittmar SAP DB, SAP Labs Berlin [EMAIL PROTECTED] http://www.sapdb.org
-- MaxDB Discussion Mailing List For list archives: http://lists.mysql.com/maxdb To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]
