You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Ernest Burghardt (Jira)" <ji...@apache.org> on 2020/03/30 23:34:07 UTC

[jira] [Closed] (GEODE-7434) Unnecessary object allocation and locking in GMSHealthMonitor.contactedBy

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

Ernest Burghardt closed GEODE-7434.
-----------------------------------
    Assignee: Ernest Burghardt  (was: Jacob Barrett)

> Unnecessary object allocation and locking in GMSHealthMonitor.contactedBy
> -------------------------------------------------------------------------
>
>                 Key: GEODE-7434
>                 URL: https://issues.apache.org/jira/browse/GEODE-7434
>             Project: Geode
>          Issue Type: Bug
>          Components: benchmarks, membership
>            Reporter: Jacob Barrett
>            Assignee: Ernest Burghardt
>            Priority: Major
>              Labels: performance
>             Fix For: 1.12.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> GMSHealthMonitor.contactedBy allocates a {{TimeStamp}} for every call but throws it away almost all of the time in the call to {{putIfAbsent}}. Additionally, {{putIfAbsent}} always brags a monitor on the hash segment resulting in unnecessary synchronization. 
> All with use of {{JavaWorkarounds.computeIfAbsent}} to avoid the locking and object allocation for the hot path where the entry already exists.
> Benchmark profiling shows 77% of P2P reader threads spent waiting for this lock.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)