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:
[email protected]


With regards,
Apache Git Services

Reply via email to