Hi all,

I opened https://issues.apache.org/jira/browse/HDFS-15638 and want to
collect feedback from the community. I know whenever changing the
permission model that follows POSIX model is never a trivial change. So
please comment on if you have concerns. For reading convenience, here is a
copy of the ticket.

*Problem*: Currently, when a user tries to accesses a file he/she needs the
permissions of it's parent and ancestors and the permission of that file.
This is correct generally, but for Hive tables directories/files, all the
files under a partition or even a table usually have the same permissions
for the same set of ACL groups. Although the permissions and ACL groups are
the same, the writer still need to call setfacl() for every file to add
LDAP groups. This results in a huge amount of RPC calls to NN. HDFS has
default ACL to solve that but that only applies to create and copy, but not
apply to rename. However, in Hive ETL, rename is very common.

*Proposal*: Add a 1-bit flag to directory inodes to indicate whether or not
it is a Hive table directory. If that flag is set, then all the
sub-directory and files under it will just use it's permission and ACL
groups settings. By doing this way, Hive ETL doesn't need to set
permissions at the file level. If that flag is not set(by default), work as
before. To set/unset that flag, it would require admin privilege.

--
Xinli Shang

Reply via email to