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 646A4764E for ; Thu, 11 Aug 2011 18:02:35 +0000 (UTC) Received: (qmail 55271 invoked by uid 500); 11 Aug 2011 18:02:33 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 55208 invoked by uid 500); 11 Aug 2011 18:02:32 -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 55200 invoked by uid 99); 11 Aug 2011 18:02:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Aug 2011 18:02:32 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of adam.kocoloski@gmail.com designates 209.85.160.180 as permitted sender) Received: from [209.85.160.180] (HELO mail-gy0-f180.google.com) (209.85.160.180) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Aug 2011 18:02:26 +0000 Received: by gyc15 with SMTP id 15so2214444gyc.11 for ; Thu, 11 Aug 2011 11:02:06 -0700 (PDT) Received: by 10.236.125.170 with SMTP id z30mr13206150yhh.215.1313085725919; Thu, 11 Aug 2011 11:02:05 -0700 (PDT) Received: from [192.168.0.164] (c-24-60-185-198.hsd1.ma.comcast.net [24.60.185.198]) by mx.google.com with ESMTPS id s62sm2428458yhn.61.2011.08.11.11.02.04 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 11 Aug 2011 11:02:04 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1084) Subject: Re: CouchDB performance From: Adam Kocoloski In-Reply-To: Date: Thu, 11 Aug 2011 14:02:03 -0400 Content-Transfer-Encoding: quoted-printable Message-Id: <9E9A84DE-CA6F-453B-9FDC-C5BCA48F0B24@apache.org> References: To: user@couchdb.apache.org X-Mailer: Apple Mail (2.1084) Hi John, first thing I'd point out is that Filipe and Paul have done = quite a lot of work on the JSON processor since 1.0.2 was released. = Trunk contains a JSON processor that calls out to YAJL instead of = relying on pure Erlang code. The improvement for large document bodies = is pretty substantial. Also, processing MBs of JSON is going to be = CPU-bound in 1.0.2. CouchDB makes good use of multicore servers to = distribute some of the load if you throw concurrent requests at it. = Hope that helps, Adam On Aug 11, 2011, at 1:54 PM, John Cheng wrote: > I published some Python scripts to help me evaluate the performance of > CouchDB (https://github.com/jlcheng/couchdb-test). I was hoping the = folks > here can help me understand what I am seeing. >=20 > The raw spreadsheet of my findings: > = https://spreadsheets0.google.com/spreadsheet/pub?hl=3Den_US&hl=3Den_US&key= =3D0AtagEcs-wlFDdGVfMGItdUIxQXcyTmZxdVdOMUw4TWc&output=3Dhtml >=20 > First, I've found that the Document Update Handler API performed worse = than > using Python to get, modify, then update the document when the = application > code is running on the same machine as CouchDB. This is surprising to = me. It > leads me to believe that when the network is not a bottleneck, it = might be > better to avoid update handers. >=20 > Second, the insert performance is not as good as I'd hoped - at least = for > large documents (100 kB+). The update performance is even worse. When = using > the "benchbulk.sh" script with a DOCSIZE of 100 kB and a BULKSIZE of = 15, I > am seeing about 12 inserts per second. Using my Python script, I was = seeing > 81 inserts/second and 30 updates/seconds for 100 kB documents. This is = on a > single 7200 rpm SATA drive. A write performance of 3 MB per second = seems > low. >=20 > In brief, there are two things I can learn more about: Is is expected = for > the Document Update API to be slower? Two, does this kind of write and > update performance look right? >=20 > This is a Ubunut 10.01 system with >=20 > 4GB RAM > 900GB 7200 rpm SATA drive > CouchDB 1.0.2 compiled using https://github.com/couchone/build-couchdb >=20 > And the stock CouchDB 0.10.0 from Ubuntu has similar performance as = well.