[
https://issues.apache.org/jira/browse/BOOKKEEPER-327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13407451#comment-13407451
]
Uma Maheswara Rao G commented on BOOKKEEPER-327:
------------------------------------------------
@Rakesh, can you please set the effect versions field?
Since this JIRA raised for System.currentTimeMillis() discussion, I have
changed currentMillis to nanoTime in BKServer code.
This particular changes we have done in Hadoop also. So, the above patch should
work with the systems where monotonicness supports.
But seeing the trace you have given looks to be different than this problem.
{code}
synchronized public void updateLatency(long latency) {
totalLatency += latency;
++numSuccessOps;
if (latency < minLatency) {
minLatency = latency;
}
if (latency > maxLatency) {
maxLatency = latency;
}
int bucket;
if (latency <= 100) { // less than 100ms
bucket = (int)(latency / 10);
} else if (latency <= 1000) { // 100ms ~ 1000ms
bucket = 1 * 9 + (int)(latency / 100);
} else if (latency <= 10000) { // 1s ~ 10s
bucket = 2 * 9 + (int)(latency / 1000);
} else { // more than 10s
bucket = 3 * 9 + 1;
}
++latencyBuckets[bucket];
}
{code}
trace shows the last line. I don't see system time here.
> System.currentTimeMillis usage in BookKeeper
> --------------------------------------------
>
> Key: BOOKKEEPER-327
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-327
> Project: Bookkeeper
> Issue Type: Bug
> Reporter: Rakesh R
> Priority: Minor
> Attachments: BOOKKEEPER-327.patch
>
>
> The following exception occured in the bookie statistics logic due to the
> System time changes. In our bookie cluster its running a periodic syncup
> scripts just to unify the SystemTime in all the machines. This is causing the
> problem and resulting ArrayIndexOutOfBoundException.
> {code}
> Exception in thread "BookieJournal-3181"
> java.lang.ArrayIndexOutOfBoundsException: -423
> at org.apache.bookkeeper.proto.BKStats$OpStats.updateLatency(BKStats.java:126)
> at
> org.apache.bookkeeper.proto.BookieServer.writeComplete(BookieServer.java:655)
> at org.apache.bookkeeper.bookie.Journal.run(Journal.java:507)
> {code}
> This jira is raised to discuss whether to use ??System.nanoTime()?? instead
> of ??System.currentTimeMillis()??
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira