Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 58145 invoked from network); 6 Aug 2010 00:26:34 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 6 Aug 2010 00:26:34 -0000 Received: (qmail 65773 invoked by uid 500); 6 Aug 2010 00:26:34 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 65635 invoked by uid 500); 6 Aug 2010 00:26:33 -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 65626 invoked by uid 99); 6 Aug 2010 00:26:33 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Aug 2010 00:26:33 +0000 X-ASF-Spam-Status: No, hits=0.7 required=10.0 tests=RCVD_IN_DNSWL_NONE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [209.85.212.180] (HELO mail-px0-f180.google.com) (209.85.212.180) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Aug 2010 00:26:27 +0000 Received: by pxi3 with SMTP id 3so4277650pxi.11 for ; Thu, 05 Aug 2010 17:26:06 -0700 (PDT) Received: by 10.114.125.17 with SMTP id x17mr13245514wac.22.1281054366698; Thu, 05 Aug 2010 17:26:06 -0700 (PDT) Received: from [192.168.1.102] (c-98-248-172-14.hsd1.ca.comcast.net [98.248.172.14]) by mx.google.com with ESMTPS id d39sm1502431wam.16.2010.08.05.17.26.04 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 05 Aug 2010 17:26:05 -0700 (PDT) Sender: J Chris Anderson Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1081) Subject: Re: multiview on github From: J Chris Anderson In-Reply-To: <96CEF573-64EE-44B2-AC41-2A5A312A141D@apache.org> Date: Thu, 5 Aug 2010 17:26:03 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: <96CEF573-64EE-44B2-AC41-2A5A312A141D@apache.org> To: dev@couchdb.apache.org X-Mailer: Apple Mail (2.1081) On Aug 5, 2010, at 4:32 PM, Jan Lehnardt wrote: > Hi Norman, >=20 > I still plan to look at your code, I know the others here > are fairly busy too, sorry for the review delay :) >=20 The code looks clean (but could use better comments about where in the = flow each module comes into play). I don't think we can guess about = performance, instead we should benchmark to make sure the ring approach = is right. In CouchDB currently, it is possible to isolate requests against a = single db. So you use the security settings to prevent access to = databases, etc. For this, using the userCtx and switching away from = couch_db:open_int() would make a big difference. This way people can query across dbs if they have read access to all of = them. I think if you package this as a CouchDB fork on Github and add a few = JavaScript tests, it will be really useful for some folks. I like that = it has geo support. Maybe we can target it for inclusion in trunk just = after GeoCouch goes in trunk (if Volker wants to put it in.) Also, for realtime hacking on this, you might find that the #couchdb IRC = channel on Freenode is a good place to solicit feedback. There are a lot = of people on there doing Geo things that would benefit from this. (They = really wanna be able to intersect a Geo query with a Map Reduce query, = etc.) Chris > Cheers > Jan > --=20 >=20 >=20 > On 5 Aug 2010, at 18:12, Norman Barker wrote: >=20 >> Hi, >>=20 >> is there any interest in the multiview, I have fixed (3) below, but = am >> still interested in approaches for (1) and (2). >>=20 >> thanks, >>=20 >> Norman >>=20 >> On Fri, Jul 30, 2010 at 3:39 PM, Norman Barker = wrote: >>> Hi, >>>=20 >>> a very initial version of the multiview is at >>> http://github.com/normanb/couchdb-multiview for discussion. >>>=20 >>> The views are intersected by using a ring of processes where each = node >>> in the ring represents a view as follows; >>>=20 >>> % send an id from the start list to the next node in the ring, if = the >>> id is in adjacent node then this node sends to the next ring node = .... >>> % if the id gets all round the ring and back to the start node then = it >>> has intersected all queries and should be included. The nodes in the >>> ring >>> % should be sorted in size from small to large for this to be = effective >>> % >>> % In addition send the initial id list round in parallel >>>=20 >>> this is implemented in the couch_query_ring module. >>>=20 >>> I have a couple of questions >>>=20 >>> 1) in the module multiview, is there a quicker way to find the = counts >>> from startkey to endkey rather than iterating? >>> 2) In the module couch_query_ring is there a quicker way to test for >>> inclusion rather than iterating? >>> 3) Finally, if I hit this concurrently I get an exception, >>>=20 >>> [error] [<0.201.0>] Uncaught error in HTTP request: {exit, >>> {noproc, >>> {gen_server,call, >>>=20 >>> (so ignore my previous email, I am able to trap the msg) >>>=20 >>> I am going to look into (3) but if you have seen this before. >>>=20 >>> I am developing on windows, but also test on linux I will work on >>> getting a linux makefile, but the Makefile.win should be a start. >>>=20 >>> Any help and comments appreciated. >>>=20 >>> Norman >>>=20 >=20