Is _all_docs sync gateway REST call supported for couchbase 3.0?


#1

I recently upgraded our single node couchbase 2.5.1 production instance to a two node cluster running couchbase 3.0.2 and sync gateway 1.0.3. On our old server the sync gateway _all_docs REST call (http://developer.couchbase.com/mobile/develop/references/sync-gateway/rest-api/database/get-all-docs/index.html) ran fairly quickly, taking about 15 seconds. Using the same user with the same amount of documents on my new cluster it takes a lot longer, about 35 seconds total, and I’ve noticed that it fails for some people, but I don’t know the ratio of failure to success since I’m not sure how many total requests are being made to it. I saw a couchbase issue saying _all_docs is no longer supported with couchbase 3.0 (https://issues.couchbase.com/browse/MB-10662), so is it still supported for sync gateway? Is there something else I should be using from sync gateway to get all the documents for a user with a REST call?


#2

The Sync Gateway _all_docs call is still valid, and unrelated to the Couchbase Server all_docs ticket you referenced.

The performance difference in the Sync Gateway _all_docs call between Couchbase Server 2.5.1 and 3.0.2 is probably down to the changes in the way stale=false views are handled. However, there shouldn’t be any scenarios where it’s failing, unless it’s some kind of timeout. Can you provide some more details on how exactly the _all_docs call is failing for you?

Aside from that, there’s also been a recent enhancement made in Sync Gateway for the _all_docs call (see https://github.com/couchbase/sync_gateway/pull/631 for details).


#3

Thanks. I don’t have any details on the failure unfortunately, I’m using angularjs $http to make the call, and the status received by that for the failure is 0, and the response data is null. Usually a timeout would have 504 status and the gateway timeout html from nginx, so I don’t think it’s a timeout. It didn’t fail for me, I’m just seeing a couple failures reported in my logging for some clients, so I don’t have any data to work with aside from the reported status and response data. The full call I’m making is:

http://<hostname>/<db name>/_all_docs?include_docs=true

I’m using this in a production setting so I can’t update sync gateway with anything but a full release version, but thanks for the info. If those changes make it into a production release later on it will definitely affect my decision on updating to it. I’m hoping to switch to using N1QL soon anyway and not retrieving all docs at once.