Hi Norman,

wow, I didn't know it hat GeoCouch support. Sounds great! I need to have a closer look. Not just now (sorry for that).

Cheers,
  Volker

On 08/06/2010 02:26 AM, J Chris Anderson wrote:

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


On 5 Aug 2010, at 18:12, Norman Barker wrote:

Hi,

is there any interest in the multiview, I have fixed (3) below, but am
still interested in approaches for (1) and (2).

thanks,

Norman

On Fri, Jul 30, 2010 at 3:39 PM, Norman Barker<norman.bar...@gmail.com>  wrote:
Hi,

a very initial version of the multiview is at
http://github.com/normanb/couchdb-multiview for discussion.

The views are intersected by using a ring of processes where each node
in the ring represents a view as follows;

% 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

this is implemented in the couch_query_ring module.

I have a couple of questions

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,

[error] [<0.201.0>] Uncaught error in HTTP request: {exit,
                                {noproc,
                                 {gen_server,call,

(so ignore my previous email, I am able to trap the msg)

I am going to look into (3) but if you have seen this before.

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.

Any help and comments appreciated.

Norman




Reply via email to