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

ASF GitHub Bot commented on GEODE-8213:
---------------------------------------

albertogpz edited a comment on pull request #621:
URL: https://github.com/apache/geode-native/pull/621#issuecomment-647987941


   The shared_lock provided by boost offered a much worse performance than the 
spinlock or the mutex (see https://github.com/apache/geode-native/pull/611).
   There is a tiny gain according to the benchmark performance test in most 
cases using a mutex:
   
   ```
   Benchmark                                                                    
                Time             CPU      Time Old      Time New       CPU Old  
     CPU New
   
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   SerializationRegistryBM_findDataSerializablePrimitive/real_time/threads:1    
             -0.0997         -0.0998           193           174           193  
         174
   SerializationRegistryBM_findDataSerializablePrimitive/real_time/threads:2    
             -0.1107         -0.1107           100            89           199  
         177
   SerializationRegistryBM_findDataSerializablePrimitive/real_time/threads:4    
             -0.0666         -0.0667            51            48           206  
         192
   SerializationRegistryBM_findDataSerializablePrimitive/real_time/threads:8    
             -0.0151         -0.0160            32            32           259  
         255
   SerializationRegistryBM_findDataSerializablePrimitive/real_time/threads:16   
             +0.0258         +0.0430            24            25           300  
         313
   SerializationRegistryBM_findDataSerializablePrimitive/real_time/threads:32   
             +0.0843         +0.0349            22            24           309  
         320
   SerializationRegistryBM_findDataSerializablePrimitive/real_time/threads:64   
             +0.0283         +0.0359            22            23           312  
         323
   SerializationRegistryBM_findDataSerializablePrimitive/real_time/threads:96   
             -0.1669         +0.0336            25            21           315  
         326
   SerializationRegistryBM_findDataSerializableFixedId/real_time/threads:1      
             -0.0925         -0.0925           190           173           190  
         173
   SerializationRegistryBM_findDataSerializableFixedId/real_time/threads:2      
             -0.0528         -0.0529            98            93           197  
         186
   SerializationRegistryBM_findDataSerializableFixedId/real_time/threads:4      
             -0.0803         -0.0803            53            49           213  
         195
   SerializationRegistryBM_findDataSerializableFixedId/real_time/threads:8      
             -0.0801         -0.0802            35            32           279  
         256
   SerializationRegistryBM_findDataSerializableFixedId/real_time/threads:16     
             -0.0189         -0.0052            26            25           318  
         316
   SerializationRegistryBM_findDataSerializableFixedId/real_time/threads:32     
             -0.0000         +0.0145            25            25           325  
         330
   SerializationRegistryBM_findDataSerializableFixedId/real_time/threads:64     
             -0.0363         +0.0179            24            24           327  
         332
   SerializationRegistryBM_findDataSerializableFixedId/real_time/threads:96     
             -0.0465         +0.0151            24            23           328  
         333
   SerializationRegistryBM_findDataSerializable/real_time/threads:1             
             -0.0557         -0.0557           193           183           193  
         183
   SerializationRegistryBM_findDataSerializable/real_time/threads:2             
             -0.0190         -0.0190            98            97           197  
         193
   SerializationRegistryBM_findDataSerializable/real_time/threads:4             
             -0.0716         -0.0722            56            52           222  
         206
   SerializationRegistryBM_findDataSerializable/real_time/threads:8             
             -0.1733         -0.1726            37            30           295  
         244
   SerializationRegistryBM_findDataSerializable/real_time/threads:16            
             -0.0343         -0.0065            26            25           322  
         319
   SerializationRegistryBM_findDataSerializable/real_time/threads:32            
             +0.0158         +0.0069            25            25           327  
         329
   SerializationRegistryBM_findDataSerializable/real_time/threads:64            
             -0.0160         +0.0143            25            25           326  
         331
   SerializationRegistryBM_findDataSerializable/real_time/threads:96            
             +0.1475         +0.0089            22            25           329  
         332
   SerializationRegistryBM_findPdxSerializable/real_time/threads:1              
             -0.0616         -0.0616           198           186           198  
         186
   SerializationRegistryBM_findPdxSerializable/real_time/threads:2              
             -0.0794         -0.0795           101            93           202  
         186
   SerializationRegistryBM_findPdxSerializable/real_time/threads:4              
             -0.0946         -0.0964            57            52           228  
         206
   SerializationRegistryBM_findPdxSerializable/real_time/threads:8              
             -0.0001         -0.0016            38            38           303  
         302
   SerializationRegistryBM_findPdxSerializable/real_time/threads:16             
             -0.0356         -0.0215            30            29           375  
         367
   SerializationRegistryBM_findPdxSerializable/real_time/threads:32             
             -0.0635         -0.0182            29            27           383  
         376
   SerializationRegistryBM_findPdxSerializable/real_time/threads:64             
             +0.0668         -0.0076            27            28           384  
         381
   SerializationRegistryBM_findPdxSerializable/real_time/threads:96             
             +0.0098         -0.0051            28            28           386  
         384
   ```
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> 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)

Reply via email to