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 "Alex Parvulescu (JIRA)" <ji...@apache.org> on 2014/12/03 10:39:13 UTC

[jira] [Updated] (OAK-2192) Concurrent commit during compaction results in mixed segments

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

Alex Parvulescu updated OAK-2192:
---------------------------------
    Attachment: OAK-2192-v9.patch

attaching v9 of the patch
 - I removed the segment loaded
 - refactored the CompactionMap so that it takes 30% less space due to making the 'afterSegmentIds' structure more efficient
 - added CompactionMap weigh estimation
 - introduced a memory check before compaction based on the available memory (available has to be more than 5x the compaction map weight otherwise compaction won't run), this should prevent potential OOMEs


> Concurrent commit during compaction results in mixed segments
> -------------------------------------------------------------
>
>                 Key: OAK-2192
>                 URL: https://issues.apache.org/jira/browse/OAK-2192
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core, segmentmk
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>              Labels: compaction, gc
>         Attachments: OAK-2192-2.patch, OAK-2192-poc-fix.patch, OAK-2192-possible-test.patch, OAK-2192-v2.patch, OAK-2192-v3.patch, OAK-2192-v4.patch, OAK-2192-v5.patch, OAK-2192-v6.patch, OAK-2192-v7.patch, OAK-2192-v8-branch-1.0.patch, OAK-2192-v8.patch, OAK-2192-v9.patch, OAK-2192.patch
>
>
> Changes that are committed during a segment store compaction run will be compacted on top of the already compacted changes. However the compactor uses the wrong before state in this case. Instead of compacting against the compacted before state it uses the un-compacted before state. The resulting state will thus contain references to un-compacted state, making those not eligible for later clean up. 



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