jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Parvulescu (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (OAK-2192) Concurrent commit during compaction results in mixed segments
Date Mon, 03 Nov 2014 10:22:33 GMT

     [ 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-v2.patch

attaching another draft patch.
this includes a lot more than this issue, so it may be a good idea to break it apart into
dedicated issues once we have some consensus on the approach:
 - a proposed approach for the shared semaphore problem (not a very good one unfortunately,
but I couldn't come up with a nicer version)
 - the compaction map now keeps a history of previous states, this will allow us to properly
link to the compacted state even after a few consecutive compaction runs
 - the segment tracker now aggressively removes all references keeping the number of refs
blocking the compaction process to a bare minimum.
 - Compaction and cleanup test now passes with a tiny hiccup (repo size assumptions changed
slightly following the aggressive cleanup approach).
 - a patch for OAK-2140: a flag to control the clone behavior: full copy vs ref copy, there
are tradeoffs either way, it makes sense to allow the user to control this via a flag

the patch currently bypasses the compaction flag setting, I did this to make testing easier,
included it for now because I'm lazy like that.


> 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
>            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.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

View raw message