Hi lucene-users,

We use the lucene-replicator to have a single indexing node push commits and 
NRT updates
to a set of replicas.

Currently, each replica has the full dataset - there is no sharding.

We use a SearcherLifetimeManager to try to provide consistent pagination over 
results.

So when we present the first page of results, we return the result of 
`record(IndexSearcher)` to the client,
with the expectation that at a later time (but not too much later) they might 
request page 2 of results with version X.

This works fine for a single instance, since the SearcherLifetimeManager keeps 
the remembered version around.
However, with multiple instances, this doesn't seem to work at all - 
your first request goes to replica A, who calls `record(searcher) -> X`.

The second request likely goes to a different instance B,
whose lifetime manager never saw a call to `record` at all - so the 
`acquire(X)` fails and returns null.

Surely there must be a way to solve this -
how do you implement consistent versioned searching like 
SearcherLifetimeManager, but with multiple Lucene replicas
who otherwise do not coordinate about which NRT versions get opened or recorded?

Thanks for any advice,
Steven


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to