Hi Julian,

The LastRevRecoveryAgent is executed at 2 places
1. On DocumentNodeStore startup where the MissingLastRevSeeker is used to
get potential candidates for recovery.
 2. At regular intervals defined by the property
'lastRevRecoveryJobIntervalInSecs' in the DocumentNodeStoreService (default
60 seconds). Short description is that MissingLastRevSeeker will be called
rarely in this case.
Long description - In this case a less expensive query is executed to find
out all the stale clusterNodes for which recovery is to be performed. If
there are clusterNodes that have unexpectedly shutdown and their
'leaseEndTime' has not expired then MissingLastRevSeeker will check all
potential candidates.

>> Proposal: if this code *is* used regularly, we'll need an API so that
DocumentStore implementations other than Mongo can optimize the query.
+1. Since, It will be executed on every startup. RDBDocumentStore already
maintains the index on _modified property so, optimized querying is
possible.

Thanks
Amit


On Mon, Aug 25, 2014 at 7:36 PM, Julian Reschke <julian.resc...@gmx.de>
wrote:

> Hi there,
>
> it appears that the MissingLastRevSeeker (oak-core), when run, will be
> very slow on large repos, unless they use a MongoDocumentStore (which has a
> special-cased query).
>
> Question: when will this code execute? I've seen it occasionally during
> benchmarking, but it doesn't seem to happen always.
>
> Proposal: if this code *is* used regularly, we'll need an API so that
> DocumentStore implementations other than Mongo can optimize the query.
>
> Best regards, Julian
>

Reply via email to