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 2015/10/09 12:24:26 UTC

[jira] [Commented] (OAK-3501) PersistedCompactionMap could release reference to records early

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

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

I'm a bit worried about the {{closed}} flag. Automatically "closing" a map that becomes empty isn't reflected through the {{PatialCompactionMap}} contract. 
Maybe we could tackle this a bit differently instead and not persist the map at all in {{compress()}} once it becomes empty but instead just set {{entries == null}}. This will save us a bit of IO on top of releasing the references to the previous maps. The {{PatialCompactionMap}} itself will still remain in {{CompactionMap.map}} though until the next compaction cycle. This shouldn't be a problem as it is now very shallow. 

> PersistedCompactionMap could release reference to records early
> ---------------------------------------------------------------
>
>                 Key: OAK-3501
>                 URL: https://issues.apache.org/jira/browse/OAK-3501
>             Project: Jackrabbit Oak
>          Issue Type: Technical task
>          Components: segmentmk
>            Reporter: Alex Parvulescu
>            Priority: Minor
>             Fix For: 1.4
>
>         Attachments: OAK-3501.patch
>
>
> Whenever a PersistedCompactionMap becomes empty it will be eventually dropped from the compaction maps chain. this will happen on the next compaction cycle, which happens post-cleanup. so we're potentially keeping a reference to some collectable garbage for up to 2 cycles.
> I'd like to propose a patch that allows for eagerly nullifying the reference to the records, making this interval shorter.



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