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 2020/06/02 15:31:00 UTC

[jira] [Commented] (GEODE-8213) C++ native client performance bottleneck in access to serialization registry

    [ https://issues.apache.org/jira/browse/GEODE-8213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17123934#comment-17123934 ] 

Jacob Barrett commented on GEODE-8213:
--------------------------------------

[~alberto.gomez] I am not at all surprised by this. The original code used spin locks in a few places and the implantation was very platform specific, some was assembly, inline assembly, or platform specific APIs. When converting over to C++11 standards we felt it best to just implement a C++11 based spin_lock with the same traits as the other C++11 locks. The goal to was to later profile and optimize locking throughout. Most of what goes on in the registry here could be lock free or at worst shared lock both of which should be available in Boost, which is already a dependency. 

> C++ native client performance bottleneck in access to serialization registry
> ----------------------------------------------------------------------------
>
>                 Key: GEODE-8213
>                 URL: https://issues.apache.org/jira/browse/GEODE-8213
>             Project: Geode
>          Issue Type: Improvement
>          Components: native client
>            Reporter: Alberto Gomez
>            Assignee: Alberto Gomez
>            Priority: Major
>             Fix For: 1.14.0
>
>
> It's been observed that when the number of threads used in a Geode client using PdxSerialization is greater than 8, there is an important drop in performance.
> Analysing the client process behavior with perf, it has been observed a very high CPU consumption by a spinlock (apache::geode::util::concurrent::spinlock_mutex::lock) used when accessing the serialization registry .



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