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/03/01 17:31:45 UTC

[jira] [Resolved] (OAK-3690) Decouple SegmentBufferWriter from SegmentStore

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

Michael Dürig resolved OAK-3690.
--------------------------------
       Resolution: Fixed
    Fix Version/s: 1.7.0

Fixed at http://svn.apache.org/viewvc?rev=1785000&view=rev.

Removing the {{SegmentIdProvider}} parameter from the {{Segment}} constructor is unfortunately not easily possible ATM as the segment needs to be able to resolve its references. [~frm] if you think we need to improve this aspect, please open a dedicated issue for discussing there. 

> Decouple SegmentBufferWriter from SegmentStore
> ----------------------------------------------
>
>                 Key: OAK-3690
>                 URL: https://issues.apache.org/jira/browse/OAK-3690
>             Project: Jackrabbit Oak
>          Issue Type: Technical task
>          Components: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>              Labels: technical_debt
>             Fix For: 1.7.0, 1.8
>
>
> Currently {{SegmentBufferWriter.flush()}} directly calls {{SegmentStore.writeSegment()}} once the current segment does not have enough space for the next record. We should try to cut this dependency as {{SegmentBufferWriter}} should only be concerned with providing buffers for segments. Actually writing these to the store should be handled by a higher level component. 
> A number of deadlock (e.g. (OAK-2560, OAK-3179, OAK-3264) we have seen is one manifestation of this troublesome dependency. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)