MB-17889: Address view_query latency regression 50/59750/3
authorJim Walker <jim@couchbase.com>
Wed, 10 Feb 2016 16:33:10 +0000 (16:33 +0000)
committerChiyoung Seo <chiyoung@couchbase.com>
Tue, 23 Feb 2016 18:09:49 +0000 (18:09 +0000)
Some of the stale=false query latency tests show a 2x increase
in the 80 and 95 percentile. This is observed when moving from
3.1.4 1835 to 1836.

The prime suspect is that the snapshot yield parameter is now
stalling the view engine's DCP data.

In the change from 1835 to 1836 this value was tuned based upon
queue lengths observed during rebalance, moving from 10 to 256.

It could be that the task now runs for longer periods blocking
DCP backfill from running, and view engine drives many backfills
due to the way it frequently closes and opens streams.

Note that DCP Backfill and the snapshot task both share the same
task type, so can block each other.

This patch moves this config value back to 10 (as it was in 1835).

The view-query latency is very difficult to relibably reproduce, observe
and tune, but there is evidence (a trend) that with this config value
at 10, the performance (view latency) is improved.

Some small scale rebalance tests (3 node cluster, swap 1 node for 1)
showed that with 10 rebalance was not adversly affected, but it's a risk.

A latency comparison is attached to the MB which hints that
the latency is better.


Change-Id: I6ecf8ff950f77638eb03e4fedaefb700cf945d54
Reviewed-on: http://review.couchbase.org/59750
Well-Formed: buildbot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com>

index a2a0a67..5bd8e04 100644 (file)
             "type": "size_t"
         "dcp_producer_snapshot_marker_yield_limit": {
-            "default": "256",
+            "default": "10",
             "descr": "The number of snapshots before ActiveStreamCheckpointProcessorTask::run yields.",
             "type": "size_t"