Details
Description
Now federation doesn't support set the global quota for each folder. Currently the quota will be applied for each subcluster under the specified folder via RPC call.
It will be very useful for users that federation can support setting global quota and exposing the command of this.
In a federated environment, a folder can be spread across multiple subclusters. For this reason, we plan to solve this by following way:
- Set global quota across each subcluster. We don't allow each subcluster can exceed maximun quota value.
- We need to construct one <Path, QuotaUsage> cache map for storing the sum quota usage of these subclusters under federation folder. Every time we want to do WRITE operation under specified folder, we will get its quota usage from cache and verify its quota. If quota exceeded, throw exception, otherwise update its quota usage in cache when finishing operations.
The quota will be set to mount table and as a new field in mount table. The set/unset command will be like:
hdfs dfsrouteradmin -setQuota -ns <nsQuota> -ss <ssQuota> <mount table> hdfs dfsrouteradmin -clrQuota <mount table>
Attachments
Attachments
Issue Links
- contains
-
HDFS-12972 RBF: Display mount table quota info in Web UI and admin command
- Resolved
-
HDFS-12973 RBF: Document global quota supporting in federation
- Resolved
- relates to
-
HDFS-13253 RBF: Quota management incorrect parent-child relationship judgement
- Resolved
-
HDFS-13307 RBF: Improve the use of setQuota command
- Resolved
-
HDFS-13346 RBF: Fix synchronization of router quota and nameservice quota
- Resolved
-
HDFS-13380 RBF: mv/rm fail after the directory exceeded the quota limit
- Resolved
-
HDFS-13528 RBF: If a directory exceeds quota limit then quota usage is not refreshed for other mount entries
- Resolved