[ 
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
(v6.3.4#6332)

Reply via email to