Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B0EB79A85 for ; Mon, 19 Sep 2011 04:19:35 +0000 (UTC) Received: (qmail 91463 invoked by uid 500); 19 Sep 2011 04:19:35 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 91397 invoked by uid 500); 19 Sep 2011 04:19:34 -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 91338 invoked by uid 99); 19 Sep 2011 04:19:32 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Sep 2011 04:19:32 +0000 X-ASF-Spam-Status: No, hits=-2000.5 required=5.0 tests=ALL_TRUSTED,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; Mon, 19 Sep 2011 04:19:30 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id E565E9FD05 for ; Mon, 19 Sep 2011 04:19:08 +0000 (UTC) Date: Mon, 19 Sep 2011 04:19:08 +0000 (UTC) From: "Filipe Manana (JIRA)" To: dev@couchdb.apache.org Message-ID: <220003232.41013.1316405948936.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1960959338.40995.1316403668911.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Updated] (COUCHDB-1288) More efficient builtin filters _doc_ids and _design MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/COUCHDB-1288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Filipe Manana updated COUCHDB-1288: ----------------------------------- Attachment: couchdb_1288_2.patch Second version of the patch, for _doc_ids, the optimized code patch is only triggered if the number of doc IDs is not greater than 100. This is too avoid loading too many full_doc_info records into memory, which can be big if the rev trees are long and/or with many branches. > More efficient builtin filters _doc_ids and _design > --------------------------------------------------- > > Key: COUCHDB-1288 > URL: https://issues.apache.org/jira/browse/COUCHDB-1288 > Project: CouchDB > Issue Type: Improvement > Reporter: Filipe Manana > Attachments: couchdb_1288.patch, couchdb_1288_2.patch > > > We have the _doc_ids and _design _changes filter as of CouchDB 1.1.0. > While they meet the expectations of applications/users, they're far from efficient for large databases. > Basically the implementation folds the entire seq btree and then filters values by the document's ID, causing too much IO and busting caches. This makes replication by doc IDs not so efficient as it could be. > The proposed patch avoids this by doing direct lookups in the ID btree, for _doc_ids, and ranged fold for _design. > If there are no objections, I would apply to branch 1.2.x besides -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira