geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jacob S. Barrett (JIRA)" <>
Subject [jira] [Commented] (GEODE-6424) Reduce overhead of stats storage
Date Mon, 18 Feb 2019 01:22:00 GMT


Jacob S. Barrett commented on GEODE-6424:

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

> Reduce overhead of stats storage
> --------------------------------
>                 Key: GEODE-6424
>                 URL:
>             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

View raw message