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]