You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2016/09/08 02:57:20 UTC

[jira] [Updated] (KUDU-1177) Consider signaling cond vars outside lock in BlockingQueue

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

Todd Lipcon updated KUDU-1177:
------------------------------
    Priority: Minor  (was: Major)

> Consider signaling cond vars outside lock in BlockingQueue
> ----------------------------------------------------------
>
>                 Key: KUDU-1177
>                 URL: https://issues.apache.org/jira/browse/KUDU-1177
>             Project: Kudu
>          Issue Type: Improvement
>          Components: perf
>    Affects Versions: GA
>            Reporter: Todd Lipcon
>            Priority: Minor
>
> It seems like in current implementations of libc, they don't implement the optimization where signaling a condition variable just moves the signaled thread to the top of the lock's wait queue. Instead, it actually wakes the thread, which will then immediately just proceed to try to take the lock, and block again, causing extra context switches.
> https://sourceware.org/ml/libc-alpha/2005-03/msg00228.html noted this behavior but it doesn't seem like anything got done, best I can tell. Warrants some benchmarking and investigation. Also worth noting that Impala does the signal outside the lock.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)