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

Francesco Mari commented on OAK-4582:
-------------------------------------

OAK-6457 introduced the {{SegmentData}} interface as a way to encapsulate the 
the underlying storage format of the segment. {{SegmentData}} is a low level 
abstraction that resonates with the work done in this issue. In fact, 
{{SegmentData}} is very similar to {{SegmentReader}}. Like {{SegmentReader}}, 
{{SegmentData}} provides read-only access to the segment, and could be used, 
with the proper adaptations, as the foundation for {{RawRecordReader}}. 
Differently than in this issue, OAK-6457 ignored the problem of writing a 
segment. That responsibility is still carried on by {{SegmentBufferWriter}}, 
which the {{SegmentWriter}} introduced by this issue intends to replace. The 
work done by this issue should either take inspiration from or be adapted to 
OAK-6457.

> Split Segment in a read-only and a read-write implementations
> -------------------------------------------------------------
>
>                 Key: OAK-4582
>                 URL: https://issues.apache.org/jira/browse/OAK-4582
>             Project: Jackrabbit Oak
>          Issue Type: Technical task
>          Components: segment-tar
>            Reporter: Francesco Mari
>            Assignee: Francesco Mari
>              Labels: technical_debt
>             Fix For: 1.8
>
>         Attachments: benchmark-01.png, benchmark-01.txt
>
>
> {{Segment}} is central to the working of the Segment Store, but it currently 
> serves two purposes:
> # It is a temporary storage location for the currently written segment, 
> waiting to be full and flushed to disk.
> # It is a way to parse serialzed segments read from disk.
> To distinguish these two use cases, I suggest to promote {{Segment}} to the 
> status of interface, and to create two different implementations for a 
> read-only and a read-write segments.



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

Reply via email to