Hi list, I got pinged as our friends from PouchDB notices that their testsuite with CouchDB 2 as a backend suddenly takes 100% longer (20mins instead of 10). [1] Because the diff was so significant I got really curious and worried about it.
This testsuite just took 10min https://travis-ci.org/pouchdb/pouchdb/jobs/74585676 (22 days old) vs https://travis-ci.org/pouchdb/pouchdb/jobs/77865796 (yesterday) which took like the other runs these days 20min. I wasn't really sure, maybe the travis VMs changed. Or Pouch. Based on the report I created a few flamegraphs to poke around what changed in CouchDBs internals. They look quite different to the ones I created in the past weeks: https://dl.dropboxusercontent.com/u/1809262/flame-couch-epi-update-doc.svg this flamegraphs shows the update of a doc. couch-epi takes 33% of the time and blocks. https://dl.dropboxusercontent.com/u/1809262/flame-epi.svg in this flamegraph I receive a document. I have 3 blocking calls to couch_epi, adding up to 21% time of the request. The report from Nolan (perf decrease of 100% in a timeframe from 3 weeks) fits into the timeframe where we added couch_epi. As almost every module uses couch_epi the performance decrease of almost all APIs also fits into the scheme. And I think the flamegraphs show that the additional time is spent in couch_epi. - I see that couch_epi uses the codeserver internally, would it be possible to use faster ETS tables? - Anything else we could do? Best, Robert [1] https://github.com/pouchdb/pouchdb/issues/4209#issuecomment-135964232
