Skip to content

Source code changes

Benoit Chesneau edited this page Jun 26, 2013 · 5 revisions

Apart changes documented in the refactoring page, the couch_core in rcouch has the following changes from Apache CouchDB:

couch_collate nif

Instead of using a driver, rcouch is using a NIF to handle the collation. couch_collate (and it's erlang part) is replacing the couchdb driver and couch_ejson_compare

Changes in core

  • Remove the ref counting code that used process links and a gen_server to manage when databases are idle. This is important ground work for the refactoring of couch_server which relies on having a sane interface to managing database.
  • Backport from BigCouch that changes the behaviour of couch_server to be more performant as well as be more robust under heavyload.
  • Simplify the authentication cache.
  • Jiffy from @davisp is replacing ejson to parse JSON,

changes in couch_httpd

replace the mochiweb acceptor loop by its own and is using ranch for that. This changes has been done to improve the reliability of the HTTP layer under the load resulting in less FDs leaks and a better supervision of the processes.

changes in logging

lager is replacing couch_log to add more granularity and significant performance improvements in logging.