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

Jinglun commented on HDFS-14815:
--------------------------------

Hi [~hemanthboyina], nice to see your concerns. Before we have this change, 
even the DFSAdmin can change the quota of the NameNode, the quota will finally 
be changed back by the Router. So the admin will see the quota is changed 
successfully and then magically changed back which is very confusing. So 
throwing an exception to remind the admin is very helpful. After all the 
'compatible quota update' is not really successful.

IMO the DFSAdmin shouldn't be able to change the quota of a mount point. All 
the mount table related works should be done with the RouterAdmin. I think 
that's why we have the RouterAdmin. 

About the exception, since the DFSAdmin is used by the administrator who has 
full knowledge of normal hdfs cluster and rbf hdfs cluster,  I think the 
administrator is able to understand it.  If the exception message is not clear 
enough may be we can make it something like ’xxx is not allowed to change quota 
of /path because it is a mount point. Use RouterAdmin instead.‘

> RBF: Update the quota in MountTable when calling setQuota on a MountTable src.
> ------------------------------------------------------------------------------
>
>                 Key: HDFS-14815
>                 URL: https://issues.apache.org/jira/browse/HDFS-14815
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Jinglun
>            Assignee: Jinglun
>            Priority: Major
>             Fix For: 3.3.0
>
>         Attachments: HDFS-14815.001.patch, HDFS-14815.002.patch, 
> HDFS-14815.003.patch, HDFS-14815.004.patch, HDFS-14815.005.patch
>
>
> The method setQuota() can make the remote quota(the quota on real clusters) 
> inconsistent with the MountTable. I think we have 3 ways to fix it:
>  # Reject all the setQuota() rpcs if it trys to change the quota of a mount 
> table.
>  # Let setQuota() to change the mount table quota. Update the quota on zk 
> first and then update remote quotas.
>  # Do nothing. The RouterQuotaUpdateService will finally make all the remote 
> quota right. We can tolerate short-term inconsistencies.
> I'd like option 1 because I want the RouterAdmin to be the only entrance to 
> update the MountTable.
> Option 3 we don't need change anything, but the quota will be inconsistent 
> for a short-term. The remote quota will be effective immediately and 
> auto-changed back after a while. User might be confused about the behavior.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to