[
https://issues.apache.org/jira/browse/IMPALA-7909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16703865#comment-16703865
]
Lars Volker commented on IMPALA-7909:
-------------------------------------
Added it there.
> Consider instrumenting locks
> ----------------------------
>
> Key: IMPALA-7909
> URL: https://issues.apache.org/jira/browse/IMPALA-7909
> Project: IMPALA
> Issue Type: Improvement
> Components: Backend
> Reporter: Tim Armstrong
> Priority: Major
> Labels: observability, supportability
>
> This isn't a fully baked idea but could be very helpful with diagnosing
> issues around lock contention and lock order.
> It would be nice to be able to identify the following things:
> * Highly contended locks, based on how often threads get blocked and how long
> they get blocked for. E.g. [~thundergun] was looking at an issue that looked
> like IMPALA-4456 but we had no way to confirm.
> * Validation of lock order by defining a static lock order and then enforcing
> it with DCHECKs
> * Detection of deadlocks or livelocks involving multiple locks. This requires
> a graph of which locks are held or waited for by the different threads.
> * Some kind of per-query metrics for the profile, e.g. the number of times
> threads got blocked on locks.
> The difficulty is doing this with low overhead and integrating with the lock
> implementations that we currently use (boost::mutex, boost::shared_mutex and
> SpinLock). Maybe it's best to do it incrementally or selectively only for
> locks that we suspect will be contention points.
> Abseil (Apache licensed) has some of this functionality:
> https://github.com/abseil/abseil-cpp/blob/master/absl/synchronization/mutex.cc
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]