couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Smith <...@iriscouch.com>
Subject Re: All The Numbers -- View Engine Performance Benchmarks
Date Sun, 27 Jan 2013 11:55:36 GMT
Awesome!

Prediction (can't wait to be proven wrong):

* Very little difference in different implementations (because stdio is the
bottleneck)
* Native views are faster but not *way* faster

Wrinkles:

* I vaguely recall JS being about equal speed to Erlang (native) when
benchmarking manage_couchdb: https://github.com/iriscouch/manage_couchdb
* I vaguely recall Mikeal Rogers saying his Python view server was so much
faster than JS back in his days at Mozilla


On Sun, Jan 27, 2013 at 2:06 PM, Russell Branca <chewbranca@gmail.com>wrote:

> Given the current momentum in updating the CouchDB view engine, I thought
> it prudent to get a baseline of performance for the various engines.
>
> I hacked together a benchmark suite today that will give a minimum set of
> metrics. If there is interest, hopefully we can put together a
> comprehensive view benchmarking suite.
>
> Repo is at: https://github.com/chewbranca/all-the-numbers
>
> I'm dumping a copy of the README here:
>
> # all-the-numbers
>
> CouchDB View Server Benchmarking Suite
>
> ## Goals
>
> To establish a baseline set of metrics for comparing various view engines.
> The
> benchmark is designed to do an "end to end" benchmark of the views,
> testing the
> total time it takes for the view engine to process the docs and get the
> data
> saved to disk in CouchDB. The motivation for this is to get a relatively
> accurate look at external view engine performance compared to the native
> erlang
> view engine.
>
> Additionally, the results should be saved for easy comparisons and
> analysis. This will currently save results into
> http://localhost:5984/all\_the\_numbers\_results.
>
> Ideally this tool will be comprehensive in covering the various view
> engines and provide simple config examples required to run benchmarks
> locally against all view engines.
>
> Initial benchmarks that come to mind:
>
>     * Base SpiderMonkey view engine
>     * Jason's direct node.js port
>     * Native Erlang view engine (how much does serializing to external
> services really cost)
>     * Things along the lines of erlv8
>     * Anything else
>
> ## Status
>
> This is currently a rough benchmark I threw together today. Hopefully we
> can
> get feedback on a comprehensive suite of view tests to accurately guage
> relative performance. Various settings are currently hardcoded in bench.js.
>
> ## Install and Run
>
>     npm install
>
>     node bench.js
>
> ## Config
>
>     ; Default view engine
>     ; [query_servers]
>     ; javascript = /usr/local/bin/couchjs
> /usr/local/share/couchdb/server/main.js
>
> ## Contributing
>
> Please!
>
> Fork this repo, add a ddoc for your view engine to the ddocs var, and
> update the config values in the README for your particular engine.
> Ideally each additional view engine should be properly namespaced so
> that all view engines can be easily tested against. For instance,
> different languages could be "javascript," "javascri\_node.js,"
> "javascript\_v8\_experiments," "some\_other\_view\_engine."
>
> ## License
>
> Apache License Version 2.0
>
>
> -Russell
>



-- 
Iris Couch

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message