Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4E08411B46 for ; Fri, 1 Aug 2014 14:34:29 +0000 (UTC) Received: (qmail 22100 invoked by uid 500); 1 Aug 2014 14:34:22 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 21929 invoked by uid 500); 1 Aug 2014 14:34:22 -0000 Mailing-List: contact commits-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 commits@couchdb.apache.org Received: (qmail 21452 invoked by uid 99); 1 Aug 2014 14:34:22 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Aug 2014 14:34:22 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 62DBE9BD3CA; Fri, 1 Aug 2014 14:34:22 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: rnewson@apache.org To: commits@couchdb.apache.org Date: Fri, 01 Aug 2014 14:34:37 -0000 Message-Id: <75877c6afc454e1496510c1568335d9e@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [16/49] fabric commit: updated refs/heads/windsor-merge to b1c0030 Provide replacement shards in reduce views BugzId: 20423 Project: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/commit/18f6c8e4 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/tree/18f6c8e4 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/diff/18f6c8e4 Branch: refs/heads/windsor-merge Commit: 18f6c8e4a40cf047a40a6fe42386f1484321afab Parents: bc57da8 Author: Paul J. Davis Authored: Thu Sep 12 10:22:16 2013 -0500 Committer: Robert Newson Committed: Fri Aug 1 15:33:41 2014 +0100 ---------------------------------------------------------------------- src/fabric_view_reduce.erl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-fabric/blob/18f6c8e4/src/fabric_view_reduce.erl ---------------------------------------------------------------------- diff --git a/src/fabric_view_reduce.erl b/src/fabric_view_reduce.erl index 16d6fb1..67c36a3 100644 --- a/src/fabric_view_reduce.erl +++ b/src/fabric_view_reduce.erl @@ -25,13 +25,16 @@ go(DbName, GroupId, View, Args, Callback, Acc0, VInfo) when is_binary(GroupId) - go(DbName, DDoc, VName, Args, Callback, Acc, {red, {_, Lang, _}, _}=VInfo) -> RedSrc = couch_mrview_util:extract_view_reduce(VInfo), - Workers0 = lists:map(fun(#shard{name=Name, node=N} = Shard) -> - Ref = rexi:cast(N, {fabric_rpc, reduce_view, [Name,DDoc,VName,Args]}), - Shard#shard{ref = Ref} - end, fabric_view:get_shards(DbName, Args)), + RPCArgs = [DDoc, VName, Args], + Shards = fabric_view:get_shards(DbName, Args), + Repls = fabric_view:get_shard_replacements(DbName, Shards), + StartFun = fun(Shard) -> + hd(fabric_util:submit_jobs([Shard], fabric_rpc, reduce_view, RPCArgs)) + end, + Workers0 = fabric_util:submit_jobs(Shards,fabric_rpc,reduce_view,RPCArgs), RexiMon = fabric_util:create_monitors(Workers0), try - case fabric_util:stream_start(Workers0, #shard.ref) of + case fabric_util:stream_start(Workers0, #shard.ref, StartFun, Repls) of {ok, Workers} -> try go2(DbName, Workers, Lang, RedSrc, Args, Callback, Acc)