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 19:29:34 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-v3.patch

attaching v3 of the draft patch. the extra bits are the compaction strategy classes. this
allows for a finer grained control over the segmentid cleanup from the segmentidtable following
a compaction run.

the cleanup strategy are as follows:
 - _none_ which would sum-up what is happening now on trunk
 - _all_ the aggresive approach from v2 of this patch, this clears all segmentid refs allowing
for a full GC run.
 - _timestamp_ this will be a timestamp based approach, meaning clear every segment older
than a specific value of milliseconds.

I'm also trying to do something sneaky with the _ SegmentNotFoundException_ in the SegmentIdTracker.
I'm logging the delta of the segmentid creation time vs the current millis, so that we can
gain better knowledge of the optimal time window value for the _timestamp_ based approach
(loosely based on Chetan's approach in OAK-2045).

We're advancing into the realm of OAK-2045, I'm wondering if it makes sense to merge the 2
issues, of move this discussion there even.

The naming of these new classes is quite bland, I'm open for better alternatives :)



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

Mime
View raw message