Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 44492 invoked from network); 9 Mar 2011 04:12:23 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 9 Mar 2011 04:12:23 -0000 Received: (qmail 53448 invoked by uid 500); 9 Mar 2011 04:12:23 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 53413 invoked by uid 500); 9 Mar 2011 04:12:23 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 53404 invoked by uid 99); 9 Mar 2011 04:12:21 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Mar 2011 04:12:21 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Mar 2011 04:12:20 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 75B9A3A0D07 for ; Wed, 9 Mar 2011 04:11:59 +0000 (UTC) Date: Wed, 9 Mar 2011 04:11:59 +0000 (UTC) From: "Randall Leeds (JIRA)" To: dev@couchdb.apache.org Message-ID: <1334666554.7033.1299643919478.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <823419600.3437.1299550079623.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] Commented: (COUCHDB-1084) Remove unnecessary btree lookup inside couch_db_updater MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/COUCHDB-1084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13004362#comment-13004362 ] Randall Leeds commented on COUCHDB-1084: ---------------------------------------- The difference between the SSD and spinning media here is noteworthy: SSD: ~100k more writes but only ~20k fewer reads total. Spinning: ~6k more writes but ~78k fewer reads. The best way I can think to explain this is that possibly the SSD test was CPU bound while the spinning media test was I/O bound. The latter is almost certainly true. In which case, I think we're seeing the seek penalty already, even with a small data set. Pushing more writes down to the OS more quickly means our disk heads are hovering at the end of the file more, perhaps. Thus, the negative impact on readers. However, it's certainly *not* that reads got *slower* since the patch hasn't changed the read path. It's merely an artifact of the testing environment and relaximation's as-fast-as-possible benchmark style. On the other hand, avoiding the seek by using an SSD and increasing the I/O bandwidth we maybe see just how much those saved CPU cycles can push writes through faster to more heavily saturate the disk and get niiiice write throughput. More testing maybe, but does this align with what you see? > Remove unnecessary btree lookup inside couch_db_updater > ------------------------------------------------------- > > Key: COUCHDB-1084 > URL: https://issues.apache.org/jira/browse/COUCHDB-1084 > Project: CouchDB > Issue Type: Improvement > Components: Database Core > Affects Versions: 1.2 > Reporter: Damien Katz > Assignee: Damien Katz > Attachments: remove_btree_lookup.patch > > > The CouchDB update process has an unnecessary btree lookup, where it reads the values in bulks, checks for conflicts, writes the docs to disk, updates the values appropriately and writes them to the btree out in a second step. It's possible to avoid this second step, and instead do all the checking, doc writing and value transformation in a single btree lookup, thereby reducing the number of btree traversals and disk IO. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira