[ 
https://issues.apache.org/jira/browse/HADOOP-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13669511#comment-13669511
 ] 

Luke Lu commented on HADOOP-9421:
---------------------------------

bq.  This is our last shot for a long time to make RPC changes, so we should 
make it as flexible as possible.

Agreed. But your proposal/patch actually makes it less flexible by making SASL 
depending on RPC engine implementation details.

bq. SASL should ideally be a detail of RPC calls instead of only an initial 
connection detail (important for following points)

My latest proposal decoupled the session concept from the underlying 
connection. By making the session explicit, you can have a more powerful and 
less leaky abstraction to handle all your use cases in a cleaner fashion.

bq. Server should be able to issue SASL challenges mid-stream, perhaps after a 
connection has been open for an extended time, or to allow restricted 
super-user operations like chown

This can be easily supported by simply close the session (with the connection 
remain open), and restart the session.

bq. Out of band SASL auth (not distinguishable from actual RPC calls) precludes 
multiplexing multiple UGIs over a single connection - a concept y! has 
internally contemplated.

SASL exchange could be much more expensive than typical RPC calls. Multiplexing 
multiple UGI over a single connection doesn't require per call SASL, which is 
an incredibly inefficient way of achieving the goal. A reasonable way to do it 
would be opening a proxy user session and add an optional user field per call 
to allow efficient multiple secure impersonation per call over the same 
session. Again the session concept is general enough to support per call SASL 
as well by optionally close the session per call. The session concept gives you 
the flexibility of amortizing the cost of SASL over multiple RPCs. 

bq. If different serializations are ever supported, we can change SASL at that 
time.

This one of the major flaws of your proposal. We want to be able to support 
multiple RPC engines at the same time in the future to allow parallel 
development/deployment of RPC engines. We don't want to implement SASL again 
for each RPC engine.


                
> Convert SASL to use ProtoBuf and add lengths for non-blocking processing
> ------------------------------------------------------------------------
>
>                 Key: HADOOP-9421
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9421
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 2.0.3-alpha
>            Reporter: Sanjay Radia
>            Assignee: Daryn Sharp
>         Attachments: HADOOP-9421.patch, HADOOP-9421.patch, 
> HADOOP-9421-v2-demo.patch
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to