GitHub user tsutsu opened a pull request:
https://github.com/apache/couchdb-couch-index/pull/14
Continue to reopen DB and enum changes until DB reopens up-to-date
Currently, indexes make an initial read of the database state and the index
state, and then work to bring the index up-to-date with that sequence-point of
the database. Once the index is caught up with this sequence-point, the
indexing process halts (excepting the case where another consumer has requested
the index state while the index updater was running; in that case, the indexing
process finishes, then notices that another reader is waiting and starts again,
reading off another sequence-point and working toward that.)
With this PR, the index updater will now repeatedly reopen the DB and check
to see whether it has truly caught up, getting a new sequence-point to work
against each time, all within the context of a single index update operation.
This means that a synchronous index update (as is used when querying the index
state) will only return when the index has been made fully current, rather than
just having caught up to the point the DB was at when the index-update began.
COUCHDB-2955
BugzID: 14036
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/cloudant/couchdb-couch-index
14036-loop-updater-until-caught-up
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/couchdb-couch-index/pull/14.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #14
----
commit 5d534a4ea7ccea9aa77b6b25a851e99f65e06807
Author: Levi McAuley <[email protected]>
Date: 2016-02-27T01:35:46Z
Continue to reopen DB and enum changes until DB reopens up-to-date
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---