From what I can tell even if a view is indexing stale=ok will return results.
My question is, what does it do whilst a view is checkpointing?
If a view is being indexed and still checkpointing does stale=ok return the view as it was before any checkpointing started or does it return the view as it is at the last checkpoint during the current index build?
I guess what I am wondering is, can I use stale=ok to guarantee that a view is consistent (i.e. fully built), so there would be another process calling the view normally to get the index updated, but the UI will use stale=ok and always have a fully built index (even if sometimes out of date for a short while).
Hope that made sense.
In CouchDB, transactions are limited to single document updates. Being ACID compliant, query results are always consistent.
Martin Brown wrote some tips to handle view updates.