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

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

LiuGuH opened a new pull request, #6390:
URL: https://github.com/apache/hadoop/pull/6390

   <!--
     Thanks for sending a pull request!
       1. If this is your first time, please read our contributor guidelines: 
https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute
       2. Make sure your PR title starts with JIRA issue id, e.g., 
'HADOOP-17799. Your PR title ...'.
   -->
   
   ### Description of PR
   
   With [HDFS-17116](https://issues.apache.org/jira/browse/HDFS-17116), Router 
safemode check contidition use monotonicNow(). 
   
   For code in  RouterSafemodeService.periodicInvoke()
   ```
   long now = monotonicNow();
   long cacheUpdateTime = stateStore.getCacheUpdateTime();
   boolean isCacheStale = (now - cacheUpdateTime) > this.staleInterval;
   ```
   
   
    
   Function monotonicNow() is implemented with System.nanoTime(). 
   
   System.nanoTime() in javadoc description:
   ```
   This method can only be used to measure elapsed time and is not related to 
any other notion of system or wall-clock time. The value returned represents 
nanoseconds since some fixed but arbitrary origin time (perhaps in the future, 
so values may be negative). 
   ```
   
    
   The following situation maybe exists :
   
   If refreshCaches  is not success in the beginning, cacheUpdateTime will be 0 
, and now - cacheUpdateTime is arbitrary origin time,so isCacheStale maybe  be 
true or false.
   
   




> Fix Router Safemode check contidition error
> -------------------------------------------
>
>                 Key: HDFS-17309
>                 URL: https://issues.apache.org/jira/browse/HDFS-17309
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: liuguanghua
>            Priority: Major
>
> With HDFS-17116, Router safemode check contidition use monotonicNow(). 
> For code in  RouterSafemodeService.periodicInvoke()
> long now = monotonicNow();
> long cacheUpdateTime = stateStore.getCacheUpdateTime();
> boolean isCacheStale = (now - cacheUpdateTime) > this.staleInterval;
>  
> Function monotonicNow() is implemented with System.nanoTime(). 
> System.nanoTime() in javadoc description:
> This method can only be used to measure elapsed time and is not related to 
> any other notion of system or wall-clock time. The value returned represents 
> nanoseconds since some fixed but arbitrary origin time (perhaps in the 
> future, so values may be negative). 
>  
> The following situation maybe exists :
> If refreshCaches not success in the beginning, cacheUpdateTime will be 0 , 
> and now - cacheUpdateTime is arbitrary origin time,so isCacheStale maybe  be 
> true or false. 



--
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

Reply via email to