[ 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)