Bob,

I can see why plugins might work for you since your ontology /
indexing code is GPL, however I am more than happy for the multiview
to be apache licensed and would like to see it in trunk.

I like the concept of plugins as it creates a stable API for third
parties, but I think a multiview is a core feature of CouchDB.

Norman

On Mon, Sep 20, 2010 at 4:19 AM, Robert Dionne
<dio...@dionne-associates.com> wrote:
> I see, neat.
>
> I ask because you might treat disjunction and conjunction  differently in 
> terms of whether you run around the ring or broadcast to all the nodes. For 
> conjunctions you need all to succeed so broadcast might fare better whereas 
> for disjunctions only one need succeed. I suppose it would depend largely on 
> the number of views and the amount of each computation.
>
> Anyway I guess I have mixed feelings about seeing this in core. I see a lot 
> of folks already struggling to get their arms around working with map/reduce. 
> It would make a good plugin for advanced users. Actually the ability to have 
> plugins is almost there now. I have an indexer that only requires some ini 
> file mods and getting the code on the classpath. I think all that's needed at 
> this point is:
>
> 1. conventions for a plugins directory
>
> 2. way of specing gen_servers in order to supervise them
>
> 3. some apis around some of the internals.
>
> I'm oversimplifying it for sure, the devils in the details and it's the kind 
> of thing programmers love to argue about ad nauseum but no one wants to do it 
> (myself included :)
>
> Best,
>
> Bob
>
>
>
> On Sep 19, 2010, at 10:22 AM, Norman Barker wrote:
>
>> Bob,
>>
>> it is just checking that a given id participates in a view, if it
>> makes it around the ring then it wins and gets streamed to the client,
>> adding disjoints would be fairly simple. Currently the only way I can
>> check if an id is in a view is to loop over the results of each view,
>> hence each node in the ring is in its own process to keep things
>> moving.
>>
>> A use case is two views, one that emits datetime (numeric) and another
>> view that emits values, e.g. A, B, C ..., the query would then be to
>> find the all documents with value A between start time and end time.
>>
>> Norman
>>
>> On Sun, Sep 19, 2010 at 5:21 AM, Robert Dionne
>> <dio...@dionne-associates.com> wrote:
>>> I took another peek at this and I'm curious as to what it's doing. Is it 
>>> just checking that a given id participates in a view? So if it makes it 
>>> around the ring it wins? Or is it actually computing the result of passing 
>>> the doc thru all the views?
>>>
>>> If the answer is the former then would disjunction also be something one 
>>> might want? I'm just curious, I don't have a use case and I forget the 
>>> original discussion around this. I sort of think of views as a functional 
>>> mapping from the database to some subset. That's not entirely accurate 
>>> given there's this reduce phase also. So I could imagine composing views in 
>>> a functional way, but the same thing can be had with just a different map 
>>> function that is the composition.
>>>
>>> Anyway if you have a brief description of this, with a use case,  it would 
>>> help.
>>>
>>> Cheers,
>>>
>>> Bob
>>>
>>>
>>>
>>>
>>> On Sep 17, 2010, at 11:32 PM, Norman Barker wrote:
>>>
>>>> Chris, James
>>>>
>>>> thanks for bumping this, we are using this internally at 'scale'
>>>> (million+ keys). I want this to work for couchdb as we want to give
>>>> back for such a great product and support this going forward, so any
>>>> suggestions welcomed and we will test and add them to the local github
>>>> account with the aim of getting this into trunk.
>>>>
>>>> Norman
>>>>
>>>> On Fri, Sep 17, 2010 at 7:00 PM, James Hayton <theb...@purplebulldog.com> 
>>>> wrote:
>>>>> I want to use it!  I just haven't gotten around to it.  I was going to try
>>>>> and test it out this weekend and if I am able, I will certainly report 
>>>>> back
>>>>> what I find.
>>>>>
>>>>> James
>>>>>
>>>>> On Fri, Sep 17, 2010 at 5:55 PM, Chris Anderson <jch...@apache.org> wrote:
>>>>>
>>>>>> On Mon, Aug 30, 2010 at 10:58 AM, Norman Barker <norman.bar...@gmail.com>
>>>>>> wrote:
>>>>>>> Bob,
>>>>>>>
>>>>>>> I can and have been testing the multiview at this scale, it is ok
>>>>>>> (fast enough), but I think being able to test inclusion of a document
>>>>>>> id in a view without having to loop would be a considerable speed
>>>>>>> improvement. If you have any ideas let me know.
>>>>>>>
>>>>>>
>>>>>> I just want to bump this thread, as I think this is a useful feature.
>>>>>> I don't expect to be able to test it in the coming weeks, but if I did
>>>>>> I would. Is anyone besides Norman using this? Has anyone used it at
>>>>>> scale?
>>>>>>
>>>>>> Cheers,
>>>>>> Chris
>>>>>>
>>>>>>> thanks,
>>>>>>>
>>>>>>> Norman
>>>>>>>
>>>>>>> On Mon, Aug 30, 2010 at 10:49 AM, Robert Newson 
>>>>>>> <robert.new...@gmail.com>
>>>>>> wrote:
>>>>>>>> I'm sorry, I've had no time to play with this at scale.
>>>>>>>>
>>>>>>>> On Mon, Aug 30, 2010 at 5:35 PM, Norman Barker 
>>>>>>>> <norman.bar...@gmail.com>
>>>>>> wrote:
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> are there any more comments on this, if not can you describe the
>>>>>>>>> process (in particular how to obtain a wiki and jira account for
>>>>>>>>> couchdb which I have been unable to do) and I will start documenting
>>>>>>>>> this so we can put this into the trunk.
>>>>>>>>>
>>>>>>>>> Bob, were you able to do any more testing with large views, are there
>>>>>>>>> any suggestions on how to speed up the document id inclusion test as
>>>>>>>>> described below?
>>>>>>>>>
>>>>>>>>> thanks,
>>>>>>>>>
>>>>>>>>> Norman
>>>>>>>>>
>>>>>>>>> On Mon, Aug 23, 2010 at 9:22 AM, Norman Barker <
>>>>>> norman.bar...@gmail.com> wrote:
>>>>>>>>>> Bob,
>>>>>>>>>>
>>>>>>>>>> thanks for the feedback and for taking a look at the code. Guidelines
>>>>>>>>>> on when to use a supervisor within couchdb with a gen_server would be
>>>>>>>>>> appreciated, currently I have a supervisor and a gen_server, but if
>>>>>>>>>> couchdb has a supervision process I could remove that layer.
>>>>>>>>>>
>>>>>>>>>> I think plugins is a great idea, however intersection of views is 
>>>>>>>>>> such
>>>>>>>>>> as common request, perhaps there needs to plugin system and if a
>>>>>>>>>> plugin is rated enough it goes into trunk as a core feature.
>>>>>>>>>>
>>>>>>>>>> the four (or slightly more) summary is here
>>>>>>>>>>
>>>>>>>>>>
>>>>>> http://github.com/normanb/couchdb/raw/trunk/src/couchdb/couch_query_ring.erl
>>>>>>>>>>
>>>>>>>>>> %
>>>>>>>>>> % send an id from the start list to the next node in the ring, if the
>>>>>>>>>> id is in adjacent node then the this node sends to the next ring node
>>>>>>>>>> ....
>>>>>>>>>> % if the id gets all round the ring and back to the start node then 
>>>>>>>>>> is
>>>>>>>>>> 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
>>>>>>>>>>
>>>>>>>>>> it really needs some eyes from the core couchdb coders to see how to
>>>>>>>>>> speed up the inclusion testing, looping is bad even if it is done in
>>>>>>>>>> parallel.
>>>>>>>>>>
>>>>>>>>>> Multiview is usable, I am using it with some pretty big mega-views 
>>>>>>>>>> (as
>>>>>>>>>> per the raindrop) model, I am also available to add features to this
>>>>>>>>>> as this is core part of our work and we want to give it to couch as a
>>>>>>>>>> contribution.
>>>>>>>>>>
>>>>>>>>>> thanks,
>>>>>>>>>>
>>>>>>>>>> Norman
>>>>>>>>>>
>>>>>>>>>> On Mon, Aug 23, 2010 at 5:05 AM, Robert Dionne
>>>>>>>>>> <dio...@dionne-associates.com> wrote:
>>>>>>>>>>> Hi Norman,
>>>>>>>>>>>
>>>>>>>>>>>  I took a peek at multiview. I haven't followed this too closely on
>>>>>> the mailing list but this is *view intersection*? Is there a 5 line 
>>>>>> summary
>>>>>> of what this does somewhere?
>>>>>>>>>>>
>>>>>>>>>>>  I'm curious as to why the daemon needs to be a supervisor, most if
>>>>>> not all of the other daemons are gen_servers. OTP allows this but I think
>>>>>> this is a good area where some CouchDB guidelines on plugins would apply.
>>>>>>>>>>>
>>>>>>>>>>>  It strikes me that views, the use of map/reduce, etc. are one of 
>>>>>>>>>>> the
>>>>>> trickier aspects of using CouchDB, particularly for new users coming from
>>>>>> the SQL world. People are also reporting issues with performance of 
>>>>>> views, I
>>>>>> guess often because reduce functions go out of control.
>>>>>>>>>>>
>>>>>>>>>>>  I think the project would be better served if features like this
>>>>>> were available as plugins. I would put GeoCouch in the same category. Its
>>>>>> very neat and timely (given everyone wants to know where everyone else is
>>>>>> using their telephone but without talking other than asynchronously), 
>>>>>> but a
>>>>>> server plugin architecture that would allow this to be done cleanly 
>>>>>> should
>>>>>> come first.
>>>>>>>>>>>
>>>>>>>>>>>  This is just my opinion. I'd love to see some of the project
>>>>>> founders and committers weigh in on this and set some direction.
>>>>>>>>>>>
>>>>>>>>>>> Best regards,
>>>>>>>>>>>
>>>>>>>>>>> Bob
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Aug 22, 2010, at 5:45 PM, Norman Barker wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I would like to take this multiview code and have it added to trunk
>>>>>> if
>>>>>>>>>>>> possible, what are the next steps?
>>>>>>>>>>>>
>>>>>>>>>>>> thanks,
>>>>>>>>>>>>
>>>>>>>>>>>> Norman
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Aug 18, 2010 at 11:44 AM, Norman Barker <
>>>>>> norman.bar...@gmail.com> wrote:
>>>>>>>>>>>>> I have made
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://github.com/normanb/couchdb
>>>>>>>>>>>>>
>>>>>>>>>>>>> which is a fork of the latest couchdb trunk with the multiview 
>>>>>>>>>>>>> code
>>>>>>>>>>>>> and tests added.
>>>>>>>>>>>>>
>>>>>>>>>>>>> If geocouch is available then it can still be used.
>>>>>>>>>>>>>
>>>>>>>>>>>>> There are a couple of questions about the multiview on the user
>>>>>> /dev
>>>>>>>>>>>>> list so I will be adding some more test cases during today.
>>>>>>>>>>>>>
>>>>>>>>>>>>> thanks,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Norman
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Tue, Aug 17, 2010 at 9:23 PM, Norman Barker <
>>>>>> norman.bar...@gmail.com> wrote:
>>>>>>>>>>>>>> this is possible, I forked geocouch since I use it, but I have
>>>>>> already
>>>>>>>>>>>>>> separated the geocouch dependencies from the trunk.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I can do this tomorrow, certainly be interested in any feedback.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> thanks,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Norman
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Tue, Aug 17, 2010 at 7:49 PM, Volker Mische <
>>>>>> volker.mis...@gmail.com> wrote:
>>>>>>>>>>>>>>> On 08/18/2010 03:26 AM, J Chris Anderson wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Aug 16, 2010, at 4:38 PM, Norman Barker wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I have made the changes as recommended, adding a test case
>>>>>>>>>>>>>>>>> multiview.js and also adding the userCtx to open the db.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I have also forked geocouch and this is available here
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> this patch seems important (especially as people are already
>>>>>> asking for
>>>>>>>>>>>>>>>> help using it on user@)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> to get it committed, it either must remove the dependency on
>>>>>> GeoCouch, or
>>>>>>>>>>>>>>>> become part of CouchDB when (and if) GeoCouch becomes part of
>>>>>> CouchDB.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Is it possible / useful to make a version that doesn't use
>>>>>> GeoCouch? And
>>>>>>>>>>>>>>>> then to make the GeoCouch capabilities part GeoCouch for now?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Chris
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Norman,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> if the patch is ready for trunk, I'd be happy to move the
>>>>>> GeoCouch bits to
>>>>>>>>>>>>>>> GeoCouch itself (as GeoCouch isn't ready for trunk yet).
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Lately I haven't been that responsive when it comes to GeoCouch,
>>>>>> but that
>>>>>>>>>>>>>>> will change (in about a month) after holidays and FOSS4G.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Cheers,
>>>>>>>>>>>>>>>  Volker
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Chris Anderson
>>>>>> http://jchrisa.net
>>>>>> http://couch.io
>>>>>>
>>>>>
>>>
>>>
>
>

Reply via email to