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

Benedict commented on CASSANDRA-6920:
-------------------------------------

Do we really need the synchronized block? Just because it has no measurable 
performance impact in this test, or now, doesn't mean it won't in future, and 
taking that penalty on every operation just to guard an infrequent read 
operation seems really unpleasant to me. Also, it affects profiling output (has 
a tendency to erroneously indicate it as a CPU sink). 

At the very least we should be using a ReadWriteLock to make sure we don't put 
threads to sleep for no good reason, but frankly I'd say simply checking that 
ops != lastOpCount would suffice on read. If they're the same return 0 and 
don't update the numbers, otherwise do what we were always doing before. Or 
have the reader spin until it sees two consistent values. Any of the above 
would be preferable to putting new places for threads to fall asleep on the 
read/write path (I am on a slow burning mission to eliminate thread signalling 
costs)

> LatencyMetrics can return infinity 
> -----------------------------------
>
>                 Key: CASSANDRA-6920
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6920
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Nick Bailey
>            Assignee: Nick Bailey
>             Fix For: 1.2.17, 2.0.7, 2.1 beta2
>
>         Attachments: 6920-cassandra-1.2.patch, 6920-cassandra-2.0.patch, 
> 6920-infinity-metrics.patch
>
>
> There is a race condition when updating the recentLatency metrics exposed 
> from LatencyMetrics.
> Attaching a patch with a test that exposes the issue and a potential fix.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to