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)