couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <paul.joseph.da...@gmail.com>
Subject Re: [DISCUSS] Mango indexes on FDB
Date Wed, 25 Mar 2020 18:35:04 GMT
> It was therefore felt that having an immediate "Not ready" signal for just _some_ calls
to _find, based on the type of backing index, was a bad and confusing api.
>
> We also discussed _find calls where the user does not specify an index, and concluded
that we would be free to choose between using the _all_docs index (which is always up to date
but rarely the best index for a given selector) or blocking to update a better but stale index.
>
> Summary-ing my summarisation;
>
> 1) if you specify an index, we'll use it even if we have to update it, no matter how
long that takes.
> 2) if you don't specify an index, it's the dealers choice. The details here may change
in point releases.
>

So it seems there's still a bit of confusion on what the consensus is
here. The way that I had thought this would work is that we'd do
something like such:

1. If user specifies and index, use it even if we have to wait
2. If an index is built that can be used, use it
3. If an index is building that can be used, wait for it
4. As a last resort use _all_docs

Discussing with Garren on the PR he's of the opinion that we should
skip step 3 and just go directly to using _all_docs if nothing is
built.

My main assumption is that most cases where a user is creating an
index and then wanting to run a query with it are in the
design/exploration phase of learning the feature or designing an index
to use. In that scenario if we skip waiting it seems likely that a
user could easily be led to believe that an index creation "worked"
for their selector when in reality it was just backed by _all_docs.

The other reason for preferring to wait for an index to finish
building is that the UI for the normal case of creating indexes is a
bit awkward. Having to run a polling loop around checking the index
status seems suboptimal in most cases.

Am I missing other cases that would benefit from not waiting and just
using _all_docs?

Paul

Mime
View raw message