couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Stuart (SuperCoders)" <>
Subject Re: Has Erlang's promise of parallelism been realised in CouchDB?
Date Thu, 30 Jun 2011 10:33:36 GMT
So it sounds like the answer is yes!  CouchDB takes good advantage of  

Does this mean that if I run CouchDB on a multicore processor then  
overall performance will go up with each core (within reason)?   
CouchDB would make good use of an eight or sixteen core CPU?


On 30/06/2011, at 5:53 PM, Randall Leeds wrote:

On Wed, Jun 29, 2011 at 17:55, Andrew Stuart (SuperCoders)
<> wrote:
> One of the primary supposed advantages of Erlang is its ability to
> parallelise.
> Has this promise been realised as a performance and scalability  
> benefit in
> CouchDB?  Or has the promise turned out to be too impractical to  
> realise in
> any major way.

Absolutely. It works out fabulously. There are some serialization
choke points along the write path, but reads are mostly free to be
executed entirely in parallel. With sufficiently fast disk(s) or
reading from hot, cached file pages I've seen good CPU utilization on
high-end multi-core and multi-cpu machines.

But beyond the parallelization of request handling there's concurrency
in the more general sense. The neat thing about Erlang, and why it has
its reputation, is that the CouchDB code can be liberal about its use
of concurrency at the code level without suffering from deadlocks or
other headaches that often plague programmers of complex,
multi-threaded shared memory systems. The Erlang team has taken care
of all the hard parts about sharing data in a concurrent environment.
As I understand it, the Erlang runtime's use of chipsets with many
hardware threads is only improving, and those benefits will be
automatically conferred upon CouchDB.

Message  protected by MailGuard: e-mail anti-virus, anti-spam and  
content filtering.
Click here to report this message as spam:

View raw message