[ https://issues.apache.org/jira/browse/HDFS-14542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16856504#comment-16856504 ]
Jinglun commented on HDFS-14542: -------------------------------- Hi [~ayushtkn], thanks for comments. No, the method isQuotaByStorageTypeSet(t) wouldn't check for each storage type. Method isQuotaByStorageTypeSet(t) works differently from isQuotaByStorageTypeSet(), it only checks the value corresponding to StorageType t. Quota check is a very frequent operation. Doing the storage type quota check 10 times for each parent inode with quota whenever calling mkdir, create, addBlock etc. It's a big cost. The simple way is deleting the redundant code and we can reduce the cost by half. I'm considering a final version that skips the check if there isn't any storage type quota. See HDFS-14547. > Remove redundant code when verify quota > --------------------------------------- > > Key: HDFS-14542 > URL: https://issues.apache.org/jira/browse/HDFS-14542 > Project: Hadoop HDFS > Issue Type: Improvement > Affects Versions: 3.1.1 > Reporter: Jinglun > Assignee: Jinglun > Priority: Minor > Attachments: HDFS-14542.patch > > > DirectoryWithQuotaFeature.verifyQuotaByStorageType() does the job of > verifying quota. It's redundant to call isQuotaByStorageTypeSet() because the > for each iterator nextline has done the same job. > {code:java} > private void verifyQuotaByStorageType(EnumCounters<StorageType> typeDelta) > throws QuotaByStorageTypeExceededException { > if (!isQuotaByStorageTypeSet()) { // REDUNDANT. > return; > } > for (StorageType t: StorageType.getTypesSupportingQuota()) { > if (!isQuotaByStorageTypeSet(t)) { // CHECK FOR EACH STORAGETYPE. > continue; > } > if (Quota.isViolated(quota.getTypeSpace(t), usage.getTypeSpace(t), > typeDelta.get(t))) { > throw new QuotaByStorageTypeExceededException( > quota.getTypeSpace(t), usage.getTypeSpace(t) + typeDelta.get(t), t); > } > } > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org