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

Francesco Mari commented on OAK-4844:
-------------------------------------

I run the same benchmarks that were previously run for OAK-4631. These are the 
base results for trunk (r1762301).

{noformat}
Apache Jackrabbit Oak 1.6-SNAPSHOT
# ConcurrentReadTest               C     min     10%     50%     90%     max    
   N 
Oak-Segment-Tar                    1      50      97     120     149     281    
 489
# ConcurrentReadWriteTest          C     min     10%     50%     90%     max    
   N 
Oak-Segment-Tar                    1      46     106     137     169     336    
 434
# ConcurrentWriteReadTest          C     min     10%     50%     90%     max    
   N 
Oak-Segment-Tar                    1       3       6      17      35     315    
3132
# ConcurrentWriteTest              C     min     10%     50%     90%     max    
   N 
Oak-Segment-Tar                    1      87      92     229     375     466    
 262
{noformat}

Following are the results of the benchmarks after I applied the patch.

{noformat}
Apache Jackrabbit Oak 1.6-SNAPSHOT
# ConcurrentReadTest               C     min     10%     50%     90%     max    
   N 
Oak-Segment-Tar                    1     177     247     280     309     366    
 216
# ConcurrentReadWriteTest          C     min     10%     50%     90%     max    
   N 
Oak-Segment-Tar                    1     147     187     241     295     357    
 249
# ConcurrentWriteReadTest          C     min     10%     50%     90%     max    
   N 
Oak-Segment-Tar                    1       5      33      49      68     106    
1212
# ConcurrentWriteTest              C     min     10%     50%     90%     max    
   N 
Oak-Segment-Tar                    1      84      92      97     182     371    
 492
{noformat}

While the patch seems to make writes faster, it introduce a penalty for reads. 
From a review of the code, and given the findings in OAK-4812, I suspect of the 
call to {{SegmentStore.newSegmentId()}} from the method 
{{Segment.internalReadRecordId()}}. Creating Segment IDs seem to be a very 
expensive operation. I will work out a new version of this patch with a 
primitive caching in the {{Segment}} and report my findings here.

> Analyse effects of simplified record ids
> ----------------------------------------
>
>                 Key: OAK-4844
>                 URL: https://issues.apache.org/jira/browse/OAK-4844
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>              Labels: performance
>             Fix For: Segment Tar 0.0.14
>
>         Attachments: OAK-4844.patch
>
>
> OAK-4631 introduced a simplified serialisation for record ids. This causes 
> their footprint on disk to increase from 3 bytes to 18 bytes. OAK-4631 has 
> some initial analysis on the effect this is having on repositories as a 
> whole. 
> I'm opening this issue as a dedicated task to further look into mitigation 
> strategies (if necessary). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to