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

Benedict commented on CASSANDRA-5657:
-------------------------------------

There is some brief discussion of this in CASSANDRA-6486, although it hasn't 
been updated in a while.

The main functional problems with yammer are:

* *Lack of accuracy for latency numbers, especially at the tail end (which is 
generally the only number users are really interested in. This is the most 
important issue)*
* Lack of accuracy over time horizons (i.e. 5m numbers are not really 5m 
numbers, they're just weighted more towards that window)
* No attempt to deal with coordinated omission

Also, there are issues with performance. Although these are mild, they are 
mounting as we introduce more and more metrics, and reduce other costs
* These are the only likely-to-block calls on the typical read/write path now
* They pollute the CPU cache through the use of LongAdder - we have hundreds of 
LongAdders we touch across a node, which is wasteful given competition to 
updates is not very high; each Timer has three long adders it updates.
* The exponentially decaying sample is performed with a heavy-weight data 
structure with complex objects, where a simple primitive array would suffice. 
This compounds the accuracy problem, as each sample occupies a LOT of space 
(probably ~100 bytes), so our sample is at least 10 times smaller than it could 
be. It also requires several CAS operations to maintain.

In general I favour the maintenance of one shared latency structure per thread 
for all latency measurements, which is aggregated periodically to maintain 
cross server statistics. This bounds the wasted memory much lower, ensures no 
competition for updates, no cache coherency traffic, and no unnecessary cache 
pollution.

> remove deprecated metrics
> -------------------------
>
>                 Key: CASSANDRA-5657
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5657
>             Project: Cassandra
>          Issue Type: Task
>          Components: Tools
>            Reporter: Jonathan Ellis
>            Assignee: T Jake Luciani
>              Labels: technical_debt
>             Fix For: 3.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to