jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Updated] (OAK-6255) Minor performance impact by collecting data for SegmentCache statistics
Date Tue, 19 Sep 2017 08:23:00 GMT

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

Michael Dürig updated OAK-6255:
-------------------------------
    Fix Version/s:     (was: 1.7.8)
                   1.8

> 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
>             Fix For: 1.8
>
>
> 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)

Mime
View raw message