Chen Liang created HDFS-11907:
---------------------------------

             Summary: NameNodeResourceChecker should avoid calling 
df.getAvailable too frequently
                 Key: HDFS-11907
                 URL: https://issues.apache.org/jira/browse/HDFS-11907
             Project: Hadoop HDFS
          Issue Type: Improvement
            Reporter: Chen Liang
            Assignee: Chen Liang


Currently, {{HealthMonitor#doHealthChecks}} invokes {{NameNode#monitorHealth}} 
which ends up invoking {{NameNodeResourceChecker#isResourceAvailable}}, at the 
frequency of once per second by default. And 
NameNodeResourceChecker#isResourceAvailable invokes {{df.getAvailable();}} 
every time it is called. Which can be a potentially very expensive operation.

Since available space information should rarely be changing dramatically at the 
pace of per second. A cached value should be sufficient. i.e. only try to get 
the updated value when the cached value is too old. otherwise simply return the 
cached value. This way df.getAvailable() gets invoked less.

Thanks [~arpitagarwal] for the offline discussion.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to