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)