ZanderXu commented on code in PR #8144:
URL: https://github.com/apache/hadoop/pull/8144#discussion_r3136051718
##########
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:
@kokonguyen191
After deep thinking, I feel that introducing a new thread might be a bit
unnecessary and it's expensive. Maybe we can let getNNDirectorySize lazily
update the directory size when it is dirty.
There is a potential race condition: RollingEditsLog may mark the directory
size as dirty while getNNDirectorySize is computing the directory sizes one by
one. In that case, the directories computed earlier should be recomputed.
Maybe we can introduce a version counter to handle this without using a lock.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]