You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by GitBox <gi...@apache.org> on 2019/06/15 03:24:39 UTC

[GitHub] [couchdb] kocolosk edited a comment on issue #2037: Add "Dreyfus" (Erlang side of Search) to CouchDB

kocolosk edited a comment on issue #2037: Add "Dreyfus" (Erlang side of Search) to CouchDB
URL: https://github.com/apache/couchdb/pull/2037#issuecomment-502330265
 
 
   I made a small change to replace the check for the `dreyfus_index` module with a test message to the Clouseau node. Here's a summary how CouchDB behaves when Clouseau is not connected:
   
   ### Search
   
   * Updates to a Search design document (i.e., one with a top-level `"indexes"` field) **succeed**. I doubt we want to change this as it would have significant implications for replication.
   * Search requests fail after ~30 seconds with a 500 status code and `{"error":"timeout","reason":"The request could not be processed in a reasonable amount of time."}`. This could be improved.
   
   ### Mango
   
   * Attempts to create a Mango text index via the `_index` endpoint fail ~immediately with a 503 status and the following response: `{"error":"required index service unavailable","reason":"text"}`. I think this is the right behavior.
   * The Mango query optimizer will skip any existing "text" indexes if the Clouseau subsystem is not available at query time. This could result in a previously fast query falling back to a full database scan. I'm OK with this.
   
   I think there are three followups:
   
   1. Reject the Search request immediately instead of timing out with a generic error
   1. Consider some retry logic to mask Clouseau reboots during upgrades as suggested by @rnewson. I could see doing a short bounded exponential backoff for a couple of seconds.
   1. Quantify the cost of the RPC-based check for Clouseau's presence; both the amount of time to do the check, and the number of times the check is invoked in the request path for a healthy system.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services