One thing that occured to me in the flame-war was that it
might be possible to reduce the QNET traffic to 1/2 for pathname
resolution using a QNX proxy idea.
Let me give some background, and then my proposal. I’m not
claiming that this is a “revelation”, and indeed it may have
been presented internally and then abandoned. If so, perhaps
QSSL would be kind enough to share their reasoning with us?
Background:
Opening a file across QNET involves the following transactions:
- client open()s a name, sending a message to local proc
- local proc sends redirect to local qnet
- client sends message to local qnet
- local qnet sends redirect to remote proc
- client sends message to remote proc OVER QNET
- remote proc sends redirect to client OVER QNET
- client sends message to remote server OVER QNET
remote server replies OVER QNET
I’m thinking that it might be possible to reduce steps 4-8 as
follows:
4) local qnet sends “resolution proxy” to remote qnet OVER QNET
5) remote qnet fully resolves the name and sends open() to remote server
6) remote qnet sends file descriptor to local client OVER QNET
This eliminates one of the lookups “over the network” to resolve
the name. It wins even more if there are multiple redirects on
the remote node.
Of course, the main trick will be to use the file descriptor that
the client has to QNET as the “actual” file descriptor for communications
with the remote, instead of as a temporary.
Anyway, just a thought… Please feel free to shoot it down as
appropriate
Cheers,
-RK
–
Robert Krten, PARSE Software Devices +1 613 599 8316.
Realtime Systems Architecture, Books, Video-based and Instructor-led
Training and Consulting at www.parse.com.
Email my initials at parse dot com.