jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Davide Giannella (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (OAK-1828) Improved SegmentWriter
Date Fri, 11 Dec 2015 08:47:12 GMT

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

Davide Giannella closed OAK-1828.
---------------------------------

Bulk close for 1.3.12

> Improved SegmentWriter
> ----------------------
>
>                 Key: OAK-1828
>                 URL: https://issues.apache.org/jira/browse/OAK-1828
>             Project: Jackrabbit Oak
>          Issue Type: Sub-task
>          Components: segmentmk
>            Reporter: Jukka Zitting
>            Assignee: Alex Parvulescu
>            Priority: Minor
>              Labels: technical_debt
>             Fix For: 1.3.12
>
>         Attachments: record-writers-v0.patch, record-writers-v1.patch, record-writers-v2.patch
>
>
> At about 1kLOC and dozens of methods, the SegmentWriter class currently a bit too complex
for one of the key components of the TarMK. It also uses a somewhat non-obvious mix of synchronized
and unsynchronized code to coordinate multiple concurrent threads that may be writing content
at the same time. The synchronization blocks are also broader than what really would be needed,
which in some cases causes unnecessary lock contention in concurrent write loads.
> To improve the readability and maintainability of the code, and to increase performance
of concurrent writes, it would be useful to split part of the SegmentWriter functionality
to a separate RecordWriter class that would be responsible for writing individual records
into a segment. The SegmentWriter.prepare() method would return a new RecordWriter instance,
and the higher-level SegmentWriter methods would use the returned instance for all the work
that's currently guarded in synchronization blocks.



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

Mime
View raw message