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 S. Barrett (JIRA)" <ji...@apache.org> on 2019/02/18 01:24:00 UTC

[jira] [Comment Edited] (GEODE-6424) Reduce overhead of stats storage

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

Jacob S. Barrett edited comment on GEODE-6424 at 2/18/19 1:23 AM:
------------------------------------------------------------------

 !image.png|height=400! 
This chart shows a comparison between the old {{Atomic50StatisticsImpl}} and a new implementation based on {{LongAdder}}. Benchmark was executed on a Intel Core i9 2.9 GHz w 6 cores and Hyperthreading (12 total hardware threads).
{noformat}
  Model Name:	MacBook Pro
  Model Identifier:	MacBookPro15,1
  Processor Name:	Intel Core i9
  Processor Speed:	2.9 GHz
  Number of Processors:	1
  Total Number of Cores:	6
  L2 Cache (per Core):	256 KB
  L3 Cache:	12 MB
  Memory:	32 GB
{noformat}


was (Author: jbarrett):
 !image.png! 
This chart shows a comparison between the old {{Atomic50StatisticsImpl}} and a new implementation based on {{LongAdder}}. Benchmark was executed on a Intel Core i9 2.9 GHz w 6 cores and Hyperthreading (12 total hardware threads).
{noformat}
  Model Name:	MacBook Pro
  Model Identifier:	MacBookPro15,1
  Processor Name:	Intel Core i9
  Processor Speed:	2.9 GHz
  Number of Processors:	1
  Total Number of Cores:	6
  L2 Cache (per Core):	256 KB
  L3 Cache:	12 MB
  Memory:	32 GB
{noformat}

> Reduce overhead of stats storage
> --------------------------------
>
>                 Key: GEODE-6424
>                 URL: https://issues.apache.org/jira/browse/GEODE-6424
>             Project: Geode
>          Issue Type: Improvement
>          Components: statistics
>            Reporter: Jacob S. Barrett
>            Priority: Major
>         Attachments: image.png
>
>
> The current stats storage system is based on a very old and complicated implementation of a thread striped counter. See {{Atomic50StatisticsImpl}}. This implementation makes now incorrect assumptions about certain performance characteristics of volatile memory access. Combined with it's complexity it is causing large variances in performance numbers on the function benchmarks. Runs can differ by as much as 45%.
> Replace this implementation with one based on the Java 8 {{LongAdder}}, which is a modern and JDK maintained implementation of a striped counter. Also use {{DoubleAdder}} to support doubles, which the {{Atomic50StatisticsImpl}} does not support.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)