Hi,
I would only add it if really necessary. We already have a very
similar method:
/**
* Get a list of documents where the key is greater than a start value
and
* less than an end value. The returned documents are immutable.
*
* @param <T> the document type
* @param collection the collection
* @param fromKey the start value (excluding)
* @param toKey the end value (excluding)
* @param indexedProperty the name of the indexed property (optional)
* @param startValue the minimum value of the indexed property
* @param limit the maximum number of entries to return
* @return the list (possibly empty)
*/
@Nonnull
<T extends Document> List<T> query(Collection<T> collection,
String fromKey,
String toKey,
String indexedProperty,
long startValue,
int limit);
Can't we use this method to at least narrow down the query to the
lower bound? I think for the purpose of the last rev seeker, this
should be sufficient.
Regards
Marcel
On 26/08/14 10:18, "Amit Jain" <[email protected]> wrote:
>Hi,
>
>>> OK, so can we put what's needed into the DocumentStore API, or
>alternatively have an extension interface, that both MongoDocumentStore
>and
>RDBDocumentStore could implement?
>
>It would make sense to add a generic method which queries on a particular
>property(possibly limiting to only indexed ones), like below, to the
>DocumentStore interface.
> <T extends Document> List<T> queryProperty(Collection<T> collection,
> String indexedProperty,
> String fromKey,
> String toKey,
> int limit);
>Thoughts?
>
>Thanks
>Amit
>
>On Tue, Aug 26, 2014 at 12:03 PM, Julian Reschke <
>[email protected]> wrote:
>
>> On 2014-08-26 08:03, Amit Jain wrote:
>>
>>> 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
>>>
>>
>> OK, so can we put what's needed into the DocumentStore API, or
>> alternatively have an extension interface, that both MongoDocumentStore
>>and
>> RDBDocumentStore could implement?
>>
>> Best regards, Julian
>>