[erlang-questions] couchdb performace 10x: using NIF for file io

Robert Virding <>
Sun Oct 24 16:17:28 CEST 2010


One intersting thing in the graphs is the fluctuations occurring in the NIF'ed version. The old version is much more consistent, but slower. I wonder why it is so.

One problem with writing too much in C that there is a big risk that the code will contain more bugs. So while a system technically is "up" it will be less accessible if it has to restart sub-sections more often.

Robert


----- "Joel Reymont" <> wrote:

> 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
> 
> 
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:


More information about the erlang-questions mailing list