Janus Chow created HDDS-6374:
--------------------------------

             Summary: Incorrect queueTime metrics of ReplicationTask
                 Key: HDDS-6374
                 URL: https://issues.apache.org/jira/browse/HDDS-6374
             Project: Apache Ozone
          Issue Type: Bug
            Reporter: Janus Chow
            Assignee: Janus Chow


The current logic to calculate the queue time of a ReplicationTask is as 
follows:
{code:java}
(Instant.now().getNano() - task.getQueued().getNano()) / 1_000_000; {code}
But Instant's nano only records the nanosecond part, it's like operation of mod.

For example, if nano part of getQueued is 500_000_000,  and queue time is 600ms
{code:java}
// code placeholder
getQueued                500_000_000
in Queue                    600_000_000
getProcessed            1100_000_000
call getNano()             100_000_000{code}
Then the result of the code mentioned above would be (100_000_000 - 
500_000_000) / 1_000_000, which is -400.

 

This ticket is to solve this bug by using Duration.between to get the correct 
queueTime.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to