[
https://issues.apache.org/jira/browse/ZOOKEEPER-2770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16113678#comment-16113678
]
ASF GitHub Bot commented on ZOOKEEPER-2770:
-------------------------------------------
Github user eribeiro commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/307#discussion_r131281803
--- Diff:
src/java/main/org/apache/zookeeper/server/FinalRequestProcessor.java ---
@@ -460,11 +465,20 @@ public void processRequest(Request request) {
if (request.type == OpCode.closeSession) {
cnxn.sendCloseSession();
}
+ checkLatency(request);
} catch (IOException e) {
LOG.error("FIXMSG",e);
}
}
+ private void checkLatency(Request request) {
+ long requestLatency = Time.currentElapsedTime() -
request.createTime;
+ if((requestWarnThresholdMs > -1 && requestLatency >
requestWarnThresholdMs) || requestWarnThresholdMs == 0) {
--- End diff --
@karanmehta93 really *really* minor nit:
```
boolean enabledAndAboveThreshold = requestWarnThresholdMs == 0 ||
(requestWarnThresholdMs > -1 && requestLatency > requestWarnThresholdMs);
if (enabledAndAboveThreshold) {
```
I moved `requestWarnThresholdMs == 0` to the beginning of the expression so
that the whole expression can be short circuited if it is equals zero. ;-)
But this is a so trivial recommendation that it's up to you use it or not.
> ZooKeeper slow operation log
> ----------------------------
>
> Key: ZOOKEEPER-2770
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2770
> Project: ZooKeeper
> Issue Type: Improvement
> Reporter: Karan Mehta
> Assignee: Karan Mehta
> Attachments: ZOOKEEPER-2770.001.patch, ZOOKEEPER-2770.002.patch,
> ZOOKEEPER-2770.003.patch
>
>
> ZooKeeper is a complex distributed application. There are many reasons why
> any given read or write operation may become slow: a software bug, a protocol
> problem, a hardware issue with the commit log(s), a network issue. If the
> problem is constant it is trivial to come to an understanding of the cause.
> However in order to diagnose intermittent problems we often don't know where,
> or when, to begin looking. We need some sort of timestamped indication of the
> problem. Although ZooKeeper is not a datastore, it does persist data, and can
> suffer intermittent performance degradation, and should consider implementing
> a 'slow query' log, a feature very common to services which persist
> information on behalf of clients which may be sensitive to latency while
> waiting for confirmation of successful persistence.
> Log the client and request details if the server discovers, when finally
> processing the request, that the current time minus arrival time of the
> request is beyond a configured threshold.
> Look at the HBase {{responseTooSlow}} feature for inspiration.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)