summaryrefslogtreecommitdiff
path: root/apps/couch/src/couch_view_compactor.erl
diff options
context:
space:
mode:
Diffstat (limited to 'apps/couch/src/couch_view_compactor.erl')
-rw-r--r--apps/couch/src/couch_view_compactor.erl15
1 files changed, 10 insertions, 5 deletions
diff --git a/apps/couch/src/couch_view_compactor.erl b/apps/couch/src/couch_view_compactor.erl
index 895556bf..f56325a4 100644
--- a/apps/couch/src/couch_view_compactor.erl
+++ b/apps/couch/src/couch_view_compactor.erl
@@ -36,15 +36,20 @@ compact_group(Group, EmptyGroup) ->
} = Group,
#group{
- db = Db,
+ dbname = DbName,
+ fd = Fd,
id_btree = EmptyIdBtree,
+ sig = Sig,
views = EmptyViews
} = EmptyGroup,
- {ok, {Count, _}} = couch_btree:full_reduce(Db#db.fulldocinfo_by_id_btree),
+ erlang:monitor(process, Fd),
+
+ {ok, Db} = couch_db:open(DbName, []),
+
+ {ok, {Count, _}} = couch_btree:full_reduce(Db#db.id_tree),
<<"_design", ShortName/binary>> = GroupId,
- DbName = couch_db:name(Db),
TaskName = <<DbName/binary, ShortName/binary>>,
couch_task_status:add_task(<<"View Group Compaction">>, TaskName, <<"">>),
@@ -72,10 +77,10 @@ compact_group(Group, EmptyGroup) ->
current_seq=Seq
},
- Pid = couch_view:get_group_server(DbName, GroupId),
+ Pid = ets:lookup_element(group_servers_by_sig, {DbName, Sig}, 2),
gen_server:cast(Pid, {compact_done, NewGroup}).
-%% @spec compact_view(View, EmptyView, Retry) -> CompactView
+%% @spec compact_view(View, EmptyView) -> CompactView
compact_view(View, EmptyView) ->
{ok, Count} = couch_view:get_row_count(View),