[ https://issues.apache.org/jira/browse/HDFS-16774?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17607440#comment-17607440 ]
ASF GitHub Bot commented on HDFS-16774: --------------------------------------- ZanderXu commented on code in PR #4903: URL: https://github.com/apache/hadoop/pull/4903#discussion_r975921564 ########## hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java: ########## @@ -2310,10 +2310,10 @@ private void invalidate(String bpid, Block[] invalidBlks, boolean async) throws IOException { final List<String> errors = new ArrayList<String>(); for (int i = 0; i < invalidBlks.length; i++) { - final ReplicaInfo removing; + final ReplicaInfo info; Review Comment: How about just move the IO request out of the lock? ``` try { File blockFile = new File(info.getBlockURI()); if (blockFile != null && blockFile.getParentFile() == null) { errors.add("Failed to delete replica " + invalidBlks[i] + ". Parent not found for block file: " + blockFile); continue; } } catch(IllegalArgumentException e) { LOG.warn("Parent directory check failed; replica {} is " + "not backed by a local file", info); } ``` > Improve async delete replica on datanode > ---------------------------------------- > > Key: HDFS-16774 > URL: https://issues.apache.org/jira/browse/HDFS-16774 > Project: Hadoop HDFS > Issue Type: Improvement > Reporter: Haiyang Hu > Assignee: Haiyang Hu > Priority: Major > Labels: pull-request-available > > In our online cluster, a large number of ReplicaNotFoundExceptions occur when > client reads the data. > After tracing the root cause, it is caused by the asynchronous deletion of > the replica operation has many stacked pending deletion caused > ReplicationNotFoundException. > Current the asynchronous delete of the replica operation process is as > follows: > 1.remove the replica from the ReplicaMap > 2.delete the replica file on the disk [blocked in threadpool] > 3.notifying namenode through IBR [blocked in threadpool] > In order to avoid similar problems as much as possible, consider optimizing > the execution flow: > The deleting replica from ReplicaMap, deleting replica from disk and > notifying namenode through IBR are processed in the same asynchronous thread. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org