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 >