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

Marcel Reutegger commented on OAK-5602:
---------------------------------------

My proposal is the following, make the maximum transaction time dependent on 
the retention time of journal entries (maxRevisionAge). To be more precise, a 
transaction would be killed if it takes longer than half of the journal 
retention time.

There are two guarantees we get with this:
- The final merge commit will always reference valid branch commits still 
present in the journal
- The transaction will be valid with all its referencing branch commits for 
half of the retention time. That is, the DocumentNodeStore diff mechanism can 
use the journal as long as both node states to compare have a revision newer 
than half the retention time.

> Avoid missing journal entries
> -----------------------------
>
>                 Key: OAK-5602
>                 URL: https://issues.apache.org/jira/browse/OAK-5602
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.6.0
>            Reporter: Stefan Egli
>            Assignee: Marcel Reutegger
>             Fix For: 1.8
>
>
> As a follow up of OAK-5601: that one is about a situation where 
> backgroundRead falls way behind and journal GC cleans up journal entries 
> before it was able to read it. We should generally look into improving this 
> situation, eg by having journal GC not do the clean up as long as there are 
> instances that haven't read the entry. This could perhaps be achieved by 
> periodically having each instance inform the rest about what journal entries 
> it has processed (or simpler: how far back it would be -find- fine for 
> journal entries to be GC'ed)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to