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

Manoj Govindassamy edited comment on HDFS-12203 at 7/26/17 8:48 PM:
--------------------------------------------------------------------

Adding [~yzhangal], [~jojochuang], [~daryn], [~asuresh] for more discussion.


was (Author: manojg):
Adding [~yzhangal], [~jojochuang], [~daryn] for more discussion.

> INodeAttributesProvider#getAttributes() support for default/passthrough mode
> ----------------------------------------------------------------------------
>
>                 Key: HDFS-12203
>                 URL: https://issues.apache.org/jira/browse/HDFS-12203
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Manoj Govindassamy
>            Assignee: Manoj Govindassamy
>
> {{INodeAttributeProvider}}
> {noformat}
>   ..
>   public abstract INodeAttributes getAttributes(String[] pathElements, 
> INodeAttributes inode);
>   public INodeAttributes getAttributes(byte[][] components, INodeAttributes 
> inode) {
>     String[] elements = new String[components.length];
>     for (int i = 0; i < elements.length; i++) {
>       elements[i] = DFSUtil.bytes2String(components[i]);
>     }
>     return getAttributes(elements, inode);
>   }
> {noformat}
> The abstract method {{INodeAttributesProvider#getAttributes()}} currently 
> takes in INode path elements and the INode. Many a times, the provider falls 
> back to the local INode attributes. But, there isn't a way for the caller to 
> tell the provider to fall back to local attribute on demand. Below is one 
> such usecase, where the caller of getAttributes() wants to use the local 
> attributes instead of the one coming from the external provider.
> Assume the external attributes provider takes care of providing custom 
> ACLFeature for some specific directories and all its descendants (like 
> Sentry) and fallsback to the default INode ACLFeature for all other 
> files/directories. And lets assume that the external provider also has its 
> meta data properly replicated to another site. 
> An operation like snapshot diff iterates over the children of given snapshot 
> pair and generates the diff list. In order to generate the diff list, files 
> are compared which involves their metadata comparisons. Once HDFS-12201 is 
> fixed, metadata comparisons will compare the attributes from external 
> providers as well. Given that external attributes can be ignored as they are 
> taken care by other means, Snapshot diff wants the meta data comparison to 
> ignore the features coming from external attribute provider and fall back to 
> the local INode features.  This on-demand fall-back or passthrough mode for 
> INodeAttributesProvider will help to avoid the huge performance, or memory 
> over consumption problems arising out of the external provider plugins.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to