Subject | Re: [IB-Java] Re: JDBC Development |
---|---|
Author | Jim Starkey |
Post date | 2001-04-30T13:56:06Z |
At 11:50 AM 4/30/01 -0000, alberola@... wrote:
While we're on the subject, someday it would be a good idea to
wean the remote interface and remote server from XDR as well.
Unlike Java, where it's just wasted code, the mechanics of XDR
and the protocol lead to unnecessary overhead.
The problem is this. XDR is basically a data mapping technology
in which a set of functions traverse a (possibly nested) data
structure indirectly calling low level primitives. The primitives
are operation sensitive (input, output, cleanup); the upper layers
are not. The gds protocol, defined by the protocol.c (the master
xdr mapping function) and protocol.h (the data structures), maps
a structure specific to each verb from memory to wire or wrire to
member. Not surprisingly, xdr_protocol is a big case statement
on verb number. The problem is that the "packet" is a concatenation
of all possible structures, each of which must be initialized and
periodically garbage collected. Both the remote server and
interface waste much too much time initializing and cleaning
structures they never touch.
Dumping XDR would not only simplify the code but also speed it
up.
Perhaps Mr. Nortel in his transmogrification of the code to C++
might consider such a flushing.
Jim Starkey
> Hello,Good.
>
> In fact, I am not cloning the remote layer and writing it in
> Java, I am coding all of this stuff from scratch. Don't be
> afraid Jim, I am not writing a XDR port in Java. :-)
>
While we're on the subject, someday it would be a good idea to
wean the remote interface and remote server from XDR as well.
Unlike Java, where it's just wasted code, the mechanics of XDR
and the protocol lead to unnecessary overhead.
The problem is this. XDR is basically a data mapping technology
in which a set of functions traverse a (possibly nested) data
structure indirectly calling low level primitives. The primitives
are operation sensitive (input, output, cleanup); the upper layers
are not. The gds protocol, defined by the protocol.c (the master
xdr mapping function) and protocol.h (the data structures), maps
a structure specific to each verb from memory to wire or wrire to
member. Not surprisingly, xdr_protocol is a big case statement
on verb number. The problem is that the "packet" is a concatenation
of all possible structures, each of which must be initialized and
periodically garbage collected. Both the remote server and
interface waste much too much time initializing and cleaning
structures they never touch.
Dumping XDR would not only simplify the code but also speed it
up.
Perhaps Mr. Nortel in his transmogrification of the code to C++
might consider such a flushing.
Jim Starkey