[ 
https://issues.apache.org/jira/browse/OAK-8071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16777761#comment-16777761
 ] 

Michael Dürig commented on OAK-8071:
------------------------------------

Thanks [~ahanikel] for the feedback. I applied it with some modifications. Most 
prominently I avoided to resolve the gc generation from JMX calls as this could 
cause loading of segments. Instead I memoise the gc generation in 
{{Commit#gcGeneration}} setting its value when the underlying segment needs to 
be loaded anyway. I think this approach is especially important wrt. 
{{SegmentNodeStoreStatsMBean#getQueuedWriters}}, which request the GC 
generation of as many commits as are currently waiting. This means that for 
queued commits the gc generation will usually show as N/A. I don't consider 
this a problem as only the gc generation of the current commit in progress is 
interesting for determining whether the current commit crossed a gc boundary 
and might thus be susceptible for OAK-8014.

I cleaned up the commit history and grouped related changes in separate 
commits. Please have a look at 
https://github.com/mduerig/jackrabbit-oak/commits/OAK-8071-2

> Logging to detect commits carrying over from previous GC generation can block 
> other threads from committing
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: OAK-8071
>                 URL: https://issues.apache.org/jira/browse/OAK-8071
>             Project: Jackrabbit Oak
>          Issue Type: Technical task
>          Components: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>            Priority: Blocker
>             Fix For: 1.12, 1.11.0, 1.8.12, 1.10.2
>
>
> Add logging / monitoring to detect the situation from OAK-8014.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to