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

ASF GitHub Bot commented on HDFS-17865:
---------------------------------------

kokonguyen191 commented on code in PR #8144:
URL: https://github.com/apache/hadoop/pull/8144#discussion_r3136437784


##########
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NNStorage.java:
##########
@@ -162,6 +163,14 @@ public boolean isOfType(StorageDirType type) {
    * Name directories size for metric.
    */
   private Map<String, Long> nameDirSizeMap = new HashMap<>();
+  /**
+   * Service to update {@link #nameDirSizeMap} asynchronously instead of 
blocking.
+   */
+  private final NameDirSizeMapUpdateService metricsUpdateService;

Review Comment:
   Hi @ZanderXu, it makes sense to reduce the complexity of the design when the 
same can be achieved with less. I have updated the design to use a volatile 
flag for checking and delegate the map update to metrics query. Please take a 
look when you have free time, thanks!





> Prevent updateNameDirSize() from blocking rollEditLog()
> -------------------------------------------------------
>
>                 Key: HDFS-17865
>                 URL: https://issues.apache.org/jira/browse/HDFS-17865
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Felix N
>            Assignee: Felix N
>            Priority: Minor
>              Labels: pull-request-available
>
> updateNameDirSize() has only metrics functionality (i.e. not very critical) 
> but has a fair bit of performance impact in one of the more critical methods 
> (rollEditLog). It's better to either reduce the metrics update frequency or 
> make it update asynchronously to avoid interference with rollEditLog().



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

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

Reply via email to