
|
If you were logged in you would be able to see more operations.
|
|
|
|
Issue Links:
|
Reference
|
|
This issue relates to:
|
|
HADOOP-6132
RPC client opens an extra connection for VersionedProtocol
|
|
|
|
|
|
|
|
|
|
|
|
I'd like to propose an improvement for consideration given my experience of working on HADOOP-4348:
Currently the first call doubles up as a 'connection setup' trigger. I'd like to propose adding a new 'init' call which is always called by the clients for connection setup. The advantages are:
- We could fold in the getProtocolVersion call into the setup call, this ensures that the Server always checks for protocol versions, regardless of whether the (malicious?) client does an explicit call for getProtocolVersion or not.
- We could authorize the connection here.
- We could add to check to ensure that the Server instance actually implements the protocol used by the client to communicate, rather than fail on the first IPC call
The flip side being an extra round-trip.
Lets discuss.
|
|
Description
|
I'd like to propose an improvement for consideration given my experience of working on HADOOP-4348:
Currently the first call doubles up as a 'connection setup' trigger. I'd like to propose adding a new 'init' call which is always called by the clients for connection setup. The advantages are:
- We could fold in the getProtocolVersion call into the setup call, this ensures that the Server always checks for protocol versions, regardless of whether the (malicious?) client does an explicit call for getProtocolVersion or not.
- We could authorize the connection here.
- We could add to check to ensure that the Server instance actually implements the protocol used by the client to communicate, rather than fail on the first IPC call
The flip side being an extra round-trip.
Lets discuss. |
Show » |
|
Regarding the round trip, isn't there that feature of TCP whereby the server accepting the connection can include some data in the response; the first packet sent back after the connection is set up doesn't have to be empty. The server could include some version info and its part of the authentication process (a list of approved auth mechanisms and a seed value?).