You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Jacob Barrett (Jira)" <ji...@apache.org> on 2019/11/11 20:03:00 UTC

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

Jacob Barrett created GEODE-7434:
------------------------------------

             Summary: 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: membership
            Reporter: Jacob Barrett


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)