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

Chris Nauroth commented on HDFS-6326:
-------------------------------------

Here is a recap of some offline discussion between me and Haohui.  Summary: we 
are reaching consensus around inclusion of an ACL bit, with the approach of 
hiding the bit from other callers as done in my v3 patch.  There will be some 
additional changes, which I'll fold into a new version of the patch to upload 
later.  This also will incorporate Daryn's feedback.

bq. I have no problem to declare this is a wrong assumption but the sad fact is 
that 3rd-party clients might depend on it.

We agreed on taking a conservative approach of using an ACL bit, but making it 
invisible to current callers of {{FsPermission#toShort}}.  The technique is 
already demonstrated in my v3 patch.

bq. Provided that the FileStatus field is relatively short (~200 bytes), adding 
a field for ACL increases the network traffic for listing files by 5%.

This is not a problem for the HDFS {{ClientProtocol}} RPC.  That protocol 
already encodes {{FsPermission}} as a protobuf uint32, and my patch isn't going 
to change that.  It's just going to toggle on a bit of the uint32 that was 
unused previously.

This is a problem for WebHDFS, which will start returning an additional 
{{"aclBit": true}} in JSON responses.  To mitigate this, the {{aclBit}} field 
will be excluded from the JSON response when there is no ACL.  IOW, you'll 
never see {{"aclBit": false}}.  This means that if ACLs are not in use, then 
there is no additional cost.  Patch v3 already implements it this way.


> WebHdfs ACL compatibility is broken
> -----------------------------------
>
>                 Key: HDFS-6326
>                 URL: https://issues.apache.org/jira/browse/HDFS-6326
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: webhdfs
>    Affects Versions: 3.0.0, 2.4.0
>            Reporter: Daryn Sharp
>            Assignee: Chris Nauroth
>            Priority: Blocker
>         Attachments: HDFS-6326.1.patch, HDFS-6326.2.patch, HDFS-6326.3.patch
>
>
> 2.4 ACL support is completely incompatible with <2.4 webhdfs servers.  The NN 
> throws an {{IllegalArgumentException}} exception.
> {code}
> hadoop fs -ls webhdfs://nn/
> Found 21 items
> ls: Invalid value for webhdfs parameter "op": No enum constant 
> org.apache.hadoop.hdfs.web.resources.GetOpParam.Op.GETACLSTATUS
> [... 20 more times...]
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to