[
https://issues.apache.org/jira/browse/CASSANDRA-16760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yifan Cai updated CASSANDRA-16760:
----------------------------------
Test and Documentation Plan: CI
Status: Patch Available (was: Open)
Patch: https://github.com/apache/cassandra/pull/1091
CI:
https://app.circleci.com/pipelines/github/yifan-c/cassandra?branch=CASSANDRA-16760%2Ftrunk
The patch unifies the duration unit used in JMXTimer and defaults to micros. A
ScalingReservoir is introduced in order to reduce the allocation and value
conversion when recording time values in micros.
> JMXTimer exposes attributes in inconsistent time units
> ------------------------------------------------------
>
> Key: CASSANDRA-16760
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16760
> Project: Cassandra
> Issue Type: Improvement
> Components: Legacy/Observability
> Reporter: Yifan Cai
> Assignee: Yifan Cai
> Priority: Normal
> Time Spent: 10m
> Remaining Estimate: 0h
>
> JMXTimer objects are constructed with a duration time unit, which is fixed to
> MICROSECONDS in the codebase. According to that, we should expect the time
> values returned from the JXMTimer are in micros.
> However, the time unit is inconsistent among the JMXTimer attributes.
> Most of the attributes such as percentiles and mean values returned are in
> micros, except Values and RecentValues.
> Those 2 attributes expose the raw histogram values of the underlying Timer
> (CodaHale) and the values are fixed to be based on nanos.
> The inconsistency leads to confusion and mis-interpretation of the values, if
> the end user is not familiar with the implementation details. One may
> consider the Values and RecentValues are also in micros.
> Besides the confusion, given the intention is to record the time values in
> the micros resolution, we do not need to allocate 165 buckets in the
> DecayingEstimatedHistogramReservoir. 165 buckets is necessary for nanos, but
> not for micros. We can only allocate 90 buckets and it should reduce ~50%
> memory footprint used by the Timers.
> I'd like to propose an approach to scale the values being recorded in the
> reservoirs used by Timers and reduce the allocation.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]