You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by "Adam Kocoloski (JIRA)" <ji...@apache.org> on 2015/06/27 00:05:04 UTC
[jira] [Created] (COUCHDB-2732) Use thread local storage for
couch_ejson_compare NIF
Adam Kocoloski created COUCHDB-2732:
---------------------------------------
Summary: Use thread local storage for couch_ejson_compare NIF
Key: COUCHDB-2732
URL: https://issues.apache.org/jira/browse/COUCHDB-2732
Project: CouchDB
Issue Type: Improvement
Security Level: public (Regular issues)
Reporter: Adam Kocoloski
Some folks inside IBM have demonstrated conclusively that the NIF we use for JSON sorting is a significant bottleneck with more than a few concurrent users hitting us. The VM ends up spending all of its time dealing with lock contention. We'd be better off sticking with the pure Erlang code, but we have an even better alternative, which is to use thread local storage to pin an allocator to each OS thread and eliminate the locks.
Patch forthcoming, but I wanted to make sure this got in the tracker. The improvement looks really signficant. Interestingly, there was some discussion about a performance regression after this was introduced back in COUCHDB-1186 ... maybe the missing element in that discussion was the client concurrency?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)