[ 
https://issues.apache.org/jira/browse/IMPALA-15088?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksandr Efimov reassigned IMPALA-15088:
-----------------------------------------

    Assignee: Aleksandr Efimov

> Improve interoperability of IntGauge and FunctionGauge for read-only code
> -------------------------------------------------------------------------
>
>                 Key: IMPALA-15088
>                 URL: https://issues.apache.org/jira/browse/IMPALA-15088
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Backend
>    Affects Versions: Impala 5.0.0
>            Reporter: Joe McDonnell
>            Assignee: Aleksandr Efimov
>            Priority: Major
>
> The IntGauge type is an alias for AtomicMetric<TMetricKind::GAUGE>, which has 
> an atomic int64_t that can be updated. However, we also use IntGauge for many 
> other things that are read only. Here are some examples:
>  * MemTracker can take an IntGauge consumption metric to integrate it into 
> the MemTracker hierarchy (e.g. tcmalloc overhead)
>  * SumGauge reads multiple IntGauges and returns the sum
>  * NegatedGauge reads a single IntGauge and negates it
>  * Memory metrics override IntGauge but get the values from gperftools 
> MallocExtension (or other equivalents)
> These are read only uses of IntGauge or situations where the IntGauge behaves 
> more like a FunctionGauge. Since FunctionGauge doesn't inherit from IntGauge, 
> it makes it hard to use FunctionGauge with any of these pieces of code.
> Since these are all read-only uses, it might make sense to create a 
> ReadOnlyIntGauge alias that is the base class of FunctionGauge and IntGauge. 
> i.e.
> {noformat}
> using ReadOnlyIntGauge = ScalarMetric<int64_t, TMetricKind::GAUGE>;{noformat}
> Read only uses work properly with this base class, and it makes it possible 
> for IntGauges and FunctionGauges to interoperate with this code.
> This would be very useful for the memory metrics. In particular, the derived 
> metric classes like TotalBytesReservedMetric or the OverheadBytesMetric from 
> the MallocUtil change would be unnecessary if they could be expressed as 
> FunctionGauges.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to