You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2017/12/06 10:13:00 UTC

[jira] [Resolved] (OAK-6255) Minor performance impact by collecting data for SegmentCache statistics

     [ https://issues.apache.org/jira/browse/OAK-6255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Dürig resolved OAK-6255.
--------------------------------
       Resolution: Not A Problem
    Fix Version/s:     (was: 1.8)

Resolving as not a problem since so far we didn't see an impact of this.

> Minor performance impact by collecting data for SegmentCache statistics 
> ------------------------------------------------------------------------
>
>                 Key: OAK-6255
>                 URL: https://issues.apache.org/jira/browse/OAK-6255
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>            Priority: Minor
>              Labels: perfomance
>
> OAK-5956 improved the statistics collected for the segment cache. As I expected this had an impact on performance as measured by our micro benchmarks. An impact is visible for {{ConcurrentReadTest}}, {{ConcurrentReadWriteTest}} and {{ConcurrentWriteTest}}. Impact on full stack operation is yet to be determined (I assume it is neglectable though). 
> {noformat}
> # ConcurrentReadTest               C     min     10%     50%     90%     max       N 
> Oak-Segment-Tar (base)             1      43     101     112     129     219     525
> Oak-Segment-Tar (OAK-5956)         1      45     104     118     138     264     496
> {noformat}
> The impact seems to be mostly caused by the {{SegmentId.onAccess}} callback. 
> Possible solutions:
> * Replace the {{SegmentId.onAccess}} callback with a direct reference to the underlying counter. 
> * Allow disabling of the cache statistics. 
> * Do nothing and accept the performance impact. 
> The first approach is least attractive as it breaks encapsulation. Depending on the impact of this on full stack operations I'd either go with the 2nd or 3rd option.  



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)