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

Marcel Reutegger commented on OAK-4739:
---------------------------------------

bq. do a retry in case the lease fails but the recovery lock has not yet been 
acquired

I'm a bit sceptical how much we buy with this. Other cluster nodes perform 
recovery checks in the cluster every 10 seconds. This means already in a two 
node cluster the recovery will kick in on average 5 seconds after a lease 
expires.

bq. introduce a new (very short) timeout

I'm also in favour of this proposal. For the lease update use case it is better 
to fail early and allow a client to perform a retry if necessary. For ease of 
backporting we could initially hard code it for the {{clusterNodes}} collection 
calls and later introduce a user defined timeout in a redesigned DocumentStore 
API as proposed in OAK-3213.

> lease: immediate renew after long renew call
> --------------------------------------------
>
>                 Key: OAK-4739
>                 URL: https://issues.apache.org/jira/browse/OAK-4739
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: documentmk
>    Affects Versions: 1.5.8
>            Reporter: Martin Böttcher
>              Labels: resilience
>
> A single temporary network issue can shut down the DocumentStore. We observed 
> the following situation:
> # org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo.renewLease was 
> called (this is done regularly and completely normal)
> # the network had a temporary issue (whatsoever)
> # the database call terminated after a lot of time (the default db 
> maxWaitTime is 120 seconds).
> # org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo.renewLease 
> decides that the current lease is too old (>120 seconds thats the default for 
> the oak.documentMK.leaseDurationSeconds property), sets a leaseCheckFailed 
> variable and throws an Exception
> # because leaseCheckFailed is set all following tries (if any) will 
> immediately throw an Exception, too.
> I'd recommend to make the ClusterNodeInfo code more robust so that at least 
> one retry will be made.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to