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

Michael Dürig commented on OAK-6915:
------------------------------------

bq. the ratio between data segment ID allocations and number of written data 
segments shows something important: segment IDs are not as perfectly 
internalized as we thought. 

I don't think this is conclusive yet as these numbers do not allow us to 
differentiate between allocations at the same point in time or reallocations 
happening later on because an segment id was gc'ed. Reviewing the code it is 
very hard to imagine how internalizing of {{SegmentId}} instanced could not 
work. A sneaky bug in {{SegmentIdTable}} would look like the most likely cause 
to me ATM. 


bq. SegmentCache should not depend on SegmentId to be perfectly internalized. 
It is very easy to break this design assumption, and the consequences of it are 
usually disastrous. It is, in my opinion, better to implement a cache that 
doesn't work with this assumption in mind.

I agree with this assumption / design being brittle somehow. Your proposal to 
move the segment cache a layer down (OAK-6919) looks like a good first step in 
decoupling things.

> Minimize the amount of uncached segment reads
> ---------------------------------------------
>
>                 Key: OAK-6915
>                 URL: https://issues.apache.org/jira/browse/OAK-6915
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: segment-tar
>            Reporter: Francesco Mari
>            Assignee: Francesco Mari
>             Fix For: 1.8, 1.7.12
>
>         Attachments: OAK-6915-01.patch, OAK-6915-02.patch, 
> OAK-6915-diagnostics-02.patch, OAK-6915-diagnostics.patch, OAK-6915.patch, 
> Screen Shot 2017-11-09 at 14.14.28.png, Screen Shot 2017-11-09 at 14.16.59.png
>
>
> The current implementation of {{SegmentCache}} should make better use of the 
> underlying Guava cache by relying on the cached segments instead of 
> unconditionally performing an uncached segment read via the 
> {{Callable<Segment>}} passed to {{SegmentCache#getSegment}}.



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

Reply via email to