You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Tim Armstrong (JIRA)" <ji...@apache.org> on 2017/09/20 17:10:00 UTC

[jira] [Resolved] (IMPALA-5895) Simplify and document memory management of RuntimeProfile Counters

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

Tim Armstrong resolved IMPALA-5895.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 2.11.0


IMPALA-5895: clean up runtime profile lifecycle

Require callers to explicitly stop counter updating instead of doing it
in the destructor. This replaces ad-hoc logic to stop individual
counters.

Track which counters need to be stopped in separate lists instead of
stopping everything.

Force all RuntimeProfiles to use ObjectPools in a uniform way - the
profile, its counters and its children all are allocated from the
same pool. This is done via a new Create() method.

Consolidate 'time_series_counter_map_lock_' and 'counter_map_lock_'
to reduce complexity of the locking scheme. I didn't see any benefit
to sharding the locks in this way - there are only two time series
counters per fragment instance, which a small fraction of the
total number of counters.

Change-Id: I45c39ac36c8e3c277213d32f5ae5f14be6b7f0df
Reviewed-on: http://gerrit.cloudera.org:8080/8069
Reviewed-by: Tim Armstrong <ta...@cloudera.com>
Tested-by: Impala Public Jenkins


> Simplify and document memory management of RuntimeProfile Counters
> ------------------------------------------------------------------
>
>                 Key: IMPALA-5895
>                 URL: https://issues.apache.org/jira/browse/IMPALA-5895
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Backend
>    Affects Versions: Impala 2.10.0
>            Reporter: Tim Armstrong
>            Assignee: Tim Armstrong
>             Fix For: Impala 2.11.0
>
>
> It's very unclear what requirements there are around object lifetimes for RuntimeProfile objects and the Counter objects that live in ObjectPools. See IMPALA-5878 for a case where it's very hard to reason about correctness of the memory management.
> We should document the requirements and also consider simplifying the ownership model. E.g. having each RuntimeProfile own all of its counters via unique_ptrs. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)