[
https://issues.apache.org/jira/browse/HDFS-5673?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris Nauroth updated HDFS-5673:
--------------------------------
Attachment: HDFS-5673.2.patch
Thanks for the feedback, Haohui. I'm uploading version 2 of the patch.
Summary of changes:
# I ditched the {{Acl}} class again. Now that we're going to use inode
features, this class is redundant with {{AclFeature}} provided on HDFS-5658.
The main reason for having the {{Acl}} class was to bundle together the ACL
entries with the sticky bit. The storage described in the design doc would
have reused the permission bits for another purpose, and thus wiped out the
current storage for sticky bit. This is no longer relevant, because the inode
feature allows us to keep using the permission bits as is. As a side effect,
the feedback about list initialization and copying no longer applies.
# I moved {{AclTransformation}} up in the package hierarchy to
{{org.apache.hadoop.hdfs.server.namenode}}. There is no need for a separate
{{.acl}} sub-package anymore now that {{Acl}} is gone.
# {{filterAclEntriesByAclSpec}}, {{mergeAclEntries}} and {{replaceAclEntries}}
are re-implemented using multi-iteration algorithms. Hopefully this code is
more readable now. {{filterAclEntriesByAclSpec}} is O(NlogN).
{{mergeAclEntries}} is O(2NlogN). {{replaceAclEntries}} is still O(N). (All
ACL spec operations still start with an O(NlogN) sort.)
# No more functors.
All tests still pass, and coverage still shows 100% except for the unused
private constructor in {{AclTransformation}}.
> Implement logic for modification of ACLs.
> -----------------------------------------
>
> Key: HDFS-5673
> URL: https://issues.apache.org/jira/browse/HDFS-5673
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: namenode
> Affects Versions: HDFS ACLs (HDFS-4685)
> Reporter: Chris Nauroth
> Assignee: Chris Nauroth
> Attachments: HDFS-5673.1.patch, HDFS-5673.2.patch
>
>
> This patch will include the core logic for modification of ACLs. This
> includes support for all user-facing APIs that modify ACLs. This will cover
> access ACLs, default ACLs, automatic mask calculations, automatic inference
> of unprovided default ACL entries, and validation to prevent creation of an
> invalid ACL.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)