couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (COUCHDB-1993) Make fabric work with the refactored view engine
Date Thu, 27 Feb 2014 20:03:28 GMT


ASF subversion and git services commented on COUCHDB-1993:

Commit 017430dc393a7b36a83e0e8faa63b80859e4bc2f in couchdb-fabric's branch refs/heads/1993-bigcouch-couch-mrview
from [~chewbranca]
[;h=017430d ]

HACK: send a meta callback from fabric_view_reduce:handle_message/3

Hack alert. This sends a meta row from the handle_message callback in
fabric_view_reduce for the case of receiving a total_and_offset
messsage. Prior to couch_mrview, the view reduce implementation did
not send this message to fabric_view_reduce.

The hack is that we don't do the proper row collection worker dance
like we do in the handle_message callback for #view_row. I added a
temporary field to the #collector record to keep track of whether
we've sent the meta row yet to ensure it only gets sent once.

The primary motivation for this hack is that it provides a clean and
elegant solution to understanding when a view output stream is
starting. This is used to cleanup unecessary code in
couch_mrview_http:view_cb/2, and it's also essential for doing multi
query views through fabric.

I strongly feel sending the meta row is the right general approach,
but the devil is in the details as usual. To do this properly, we need
to funnel this through fabric_view:maybe_send_row, which gets awkward
in a hurry. So I've decided to temporarily introduce this hack to
solidify the API allowing the multi_query_view implementation to be
completed. Next step is to figure out how to fix this hack.


> Make fabric work with the refactored view engine
> ------------------------------------------------
>                 Key: COUCHDB-1993
>                 URL:
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: BigCouch
>            Reporter: Volker Mische
>            Assignee: Russell Branca

This message was sent by Atlassian JIRA

View raw message