Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A3D316B49 for ; Thu, 30 Jun 2011 10:35:08 +0000 (UTC) Received: (qmail 65294 invoked by uid 500); 30 Jun 2011 10:35:06 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 64819 invoked by uid 500); 30 Jun 2011 10:34:58 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 64491 invoked by uid 99); 30 Jun 2011 10:34:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Jun 2011 10:34:55 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of andrew.stuart@supercoders.com.au designates 67.225.156.16 as permitted sender) Received: from [67.225.156.16] (HELO vanadium.mailguard.com.au) (67.225.156.16) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Jun 2011 10:34:49 +0000 Received: from vanadium.mailguard.com.au (localhost.localdomain [127.0.0.1]) by vanadium.mailguard.com.au (Postfix) with ESMTP id 8F7B0CC0642 for ; Thu, 30 Jun 2011 20:34:28 +1000 (EST) Received: from public001.crowdwave.com (ec2-174-129-235-19.compute-1.amazonaws.com [174.129.235.19]) by vanadium.mailguard.com.au (Postfix) with ESMTPA id 29777CC0630 for ; Thu, 30 Jun 2011 20:34:28 +1000 (EST) Received: from public001.crowdwave.com (public001.crowdwave.com [127.0.0.1]) by public001.crowdwave.com (Postfix) with ESMTP id C9A507A2E6 for ; Thu, 30 Jun 2011 20:34:27 +1000 (EST) Received: from public001.crowdwave.com (public001.crowdwave.com [127.0.0.1]) by mx-int.flatraterecruitment.com.au (Postfix) with ESMTP id 6021F7A332 for ; Thu, 30 Jun 2011 20:34:27 +1000 (EST) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on public001.crowdwave.com X-Spam-Level: Received: from [192.168.1.104] (dsl-202-45-109-118-static.VIC.netspace.net.au [202.45.109.118]) by public001.crowdwave.com (Postfix) with ESMTPSA id 70D897A2E6 for ; Thu, 30 Jun 2011 20:34:26 +1000 (EST) Message-Id: <93D4486A-666C-43D1-8D4A-D69ABE61C946@supercoders.com.au> From: "Andrew Stuart (SuperCoders)" To: user@couchdb.apache.org In-Reply-To: Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v936) Subject: Re: Has Erlang's promise of parallelism been realised in CouchDB? Date: Thu, 30 Jun 2011 20:33:36 +1000 References: <8B78BAB7-08D4-4FD3-AAB4-AC52657698C8@supercoders.com.au> X-Mailer: Apple Mail (2.936) X-Virus-Scanned: ClamAV using ClamSMTP X-MailGuard-UID: 4e0c5134224209db X-MailGuard-ID: 4e0c51340f6a5b X-Filtered: by MailGuard - visit http://www.mailguard.com.au X-Old-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,AWL autolearn=ham version=3.2.5 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) 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