Details
-
Improvement
-
Resolution: Won't Fix
-
Major
-
2.0-beta, 2.0, 2.0.1, 2.1.0
-
Security Level: Public
-
None
Description
Some things can be done to reduce query latency:
1) Cache design document signatures (they take a surprisingly high time to compute for ddocs with several views and/or large view definitions);
2) Avoid some list to bitmask and/or bitmask to list computations (need more investigation, but fprof and manual tests show this takes a non negligible amount of time). Not yet sure to how much extent this can be done.
Some other improvements are possible.
Even without this change, after MB-7629, MB-8029 and MB-8159 are complete, query performance is expected to improve, as there's less heavy tasks running inside the Erlang VM.
Lock contention inside the Erlang VM when running queries/indexing/compaction in parallel (evperf tests), according to Erlang's lcnt (http://www.erlang.org/doc/apps/tools/lcnt_chapter.html) is a significant bottleneck even on a quad core machine (possible more with higher number of cores).