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 137819E1F for ; Thu, 2 Feb 2012 23:09:16 +0000 (UTC) Received: (qmail 52085 invoked by uid 500); 2 Feb 2012 23:09:15 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 52038 invoked by uid 500); 2 Feb 2012 23:09:14 -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 52029 invoked by uid 99); 2 Feb 2012 23:09:14 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Feb 2012 23:09:14 +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; Thu, 02 Feb 2012 23:09:13 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 811D6189620 for ; Thu, 2 Feb 2012 23:08:53 +0000 (UTC) Date: Thu, 2 Feb 2012 23:08:53 +0000 (UTC) From: "Benoit Chesneau (Updated) (JIRA)" To: dev@couchdb.apache.org Message-ID: <933619507.5481.1328224133530.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <2009596994.5464.1328224013894.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Updated] (COUCHDB-1398) improve view filtering in changes 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-1398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Chesneau updated COUCHDB-1398: ------------------------------------- Attachment: 0007-useless-info.patch 0006-immprove-view-filter.patch 0005-add-view_updated-event.patch 0004-This-wrapper-is-useless-somehow-split-the-code-in-a-.patch 0003-fix-indent.patch 0002-initial-step-move-the-code-from-couch_httpd_db-to-co.patch 0001-white-spaces.patch First set of patches > improve view filtering in changes > --------------------------------- > > Key: COUCHDB-1398 > URL: https://issues.apache.org/jira/browse/COUCHDB-1398 > Project: CouchDB > Issue Type: Improvement > Components: View Server Support > Affects Versions: 2.0, 1.3 > Reporter: Benoit Chesneau > Labels: changes, view > Attachments: 0001-white-spaces.patch, 0002-initial-step-move-the-code-from-couch_httpd_db-to-co.patch, 0003-fix-indent.patch, 0004-This-wrapper-is-useless-somehow-split-the-code-in-a-.patch, 0005-add-view_updated-event.patch, 0006-immprove-view-filter.patch, 0007-useless-info.patch > > > Improve the native view filter `_view` support by really using view index. This patches add following features > - small refactoring: create the couch_httpd_changes modules, to put all the changes http support in its own module instead having it in couch_httpd_db. > - add the `view_updated` event when a view index is updated : {view_updated, {DbName, IndexName}} > - start the feed using results in the view index instead of all the db index > - only react on view index changes. > For now next changes are still get using the couch_db:changes_since function and passing the map function to the results. It could be improved if we had a by_seq btree in the view index too. Other way may be to skip a number of the documents already processed. Not sure it would be faster. Thoughts ? > The branch couch_view_changes in my repo contains preliminary support: > https://github.com/benoitc/couchdb/tree/couch_view_changes > Diff: > https://github.com/benoitc/couchdb/compare/master...couch_view_changes > To use it, use the native filter named _view which take the parameter view=DesignName/Viewname > eg: > http://server/db/_changes?feed=continuous&heartbeat=true&filter=_view&view=DesignName/SomeView > It has also an interresting side effect: on each db updates the view index refresh is triggered so view updates are triggered. Maybe we could introduce an optionnal parameter to not trigger them though? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira