couchdb performace 10x: using NIF for file io

Joel Reymont joelr1@REDACTED
Sun Oct 24 15:56:34 CEST 2010


Simply switching to NIFs for file IO seems to have improved CouchDB write performance more than ten-fold.

Compare the old graph

http://graphs.mikeal.couchone.com/#/graph/62b286fbb7aa55a4b0c4cc913c00f5a4

to the new graph

http://graphs.mikeal.couchone.com/#/graph/62b286fbb7aa55a4b0c4cc913c00f4d7

I was under the impression that the Erlang IO subsystem was highly optimized but there seems to be no limit to perfection.

NIFs are a giant black hole that will subsume Erlang code as performance has to be improved. Start at the lowest level and keep moving up. All that will be left of Erlang in the end is 99.99999% uptime, fault tolerance and supervision... of optimized C code. It's swell and I'm all for it!

Patch is here:

http://github.com/wagerlabs/couchdb/commit/23527eb8165f81e63d47b230f3297d3072c88d83

---
http://twitter.com/wagerlabs



More information about the erlang-questions mailing list