So it sounds like the answer is yes! CouchDB takes good advantage of
parallelism.
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?
as
On 30/06/2011, at 5:53 PM, Randall Leeds wrote:
On Wed, Jun 29, 2011 at 17:55, Andrew Stuart (SuperCoders)
<[email protected]> 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.
-Randall
--
Message protected by MailGuard: e-mail anti-virus, anti-spam and
content filtering.http://www.mailguard.com.au/mg
Click here to report this message as spam:
https://login.mailguard.com.au/report/1CCawyM1VJ/2ApnQ5MiX7V7bUwt2tI3Ow/0