[ 
https://issues.apache.org/jira/browse/HDFS-17473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ZanderXu resolved HDFS-17473.
-----------------------------
    Resolution: Fixed

> [FGL] Solutions for Quota
> -------------------------
>
>                 Key: HDFS-17473
>                 URL: https://issues.apache.org/jira/browse/HDFS-17473
>             Project: Hadoop HDFS
>          Issue Type: Task
>            Reporter: ZanderXu
>            Assignee: ZanderXu
>            Priority: Major
>
> Concurrent operations on directory tree may cause Quota updates and 
> verification to not be thread-safe.
> For example: 
>  # Supposing there is directory _/a/b_ and quota is on inode _a_ and _b_
>  # There are some directories and files under {_}/a/b{_}, such as: 
> {_}/a/b/c/d1{_}, _/a/b/d/f1.txt_
>  # Supposing there is a create operation under _/a/b/c/d1_ and there is a 
> addBlock operation on _/a/b/d/f1.txt_
>  # These two operations can be handled concurrently by namenode
>  # They will update the quota on inode a concurrently since these operations 
> just hold the read lock of the inode _a_ and {_}b{_}.
>  # so we should make quota-related thread safe.
>  
> There are two solutions to make quota-related thread safe。
> Solution one: Hold the write lock of the first iNode with Quota set when 
> resolvePath
>  * Directly hold the write lock of iNode _a_ so that all operations involving 
> subtree _/a_ can be handled safety.
>  * Due to lower concurrency, maximum improvements cannot be achieved.
>  * But the implementation is simple and straightforward.
> Solution two: Lock all QuotaFeatures during quota verification or update
>  * Still hold the read lock of iNode a and b
>  * Lock all QuotaFeatures involved in this operations, when validating or 
> updating quotas.
>  * Maximum improvements can be achieved.
>  * But the implementation is a little complex
>  ** Add a lock for each QuotaFeature
>  ** Acquire locks for all involving QuotaFeature



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to