You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Liang Xie (JIRA)" <ji...@apache.org> on 2014/04/25 04:44:14 UTC

[jira] [Created] (HDFS-6284) don't let checkDiskError() run concurrently

Liang Xie created HDFS-6284:
-------------------------------

             Summary: don't let checkDiskError() run concurrently
                 Key: HDFS-6284
                 URL: https://issues.apache.org/jira/browse/HDFS-6284
             Project: Hadoop HDFS
          Issue Type: Improvement
          Components: datanode
    Affects Versions: 2.4.0, 3.0.0
            Reporter: Liang Xie
            Assignee: Liang Xie


In current codebase, there're amount of  datanode.checkDiskError calls,  so it possible occurs that not a few threads call checkDiskError concurrently. IMHO, it'll be more reasonable if we avoid the concurrent running behavior.
1. FsDatasetImpl.checkDataDir has a "synchronized" keyword, so the concurrent checking will be done one by one internally.
2. checkDir() operation will take lengthy time once hitting a sick disk. if we have more than one thread to check disk in series,  the cost from upper invoker like BlockReceiver will be unacceptable.

Patch will be attached later, any comments are welcome !



--
This message was sent by Atlassian JIRA
(v6.2#6252)