anchor.diff:        fun () ->
                 ViewName = view_name(BucketName, DDocId, Kind, Type),
   
  -              DoCompact =
  -                  case Force of
  -                      true ->
  -                          ?log_info("Forceful compaction of view ~s requested",
  -                                    [ViewName]),
  -                          true;
  -                      false ->
  -                          view_needs_compaction(BucketName, DDocId, Kind, Type, Config)
  -                  end,
  -
  -              DoCompact orelse exit(normal),
  +              Force orelse view_needs_compaction(BucketName, DDocId, Kind, Type, Config)
  +                  orelse exit(normal),
   
                 %% effectful
                 ensure_can_view_compact(BucketName, DDocId, Kind, Type),
  -
  -              ?log_info("Compacting indexes for ~s", [ViewName]),
  -              process_flag(trap_exit, true),
   
                 TriggerType = case Force of
                                   true ->
  
positive.code:     Compactor = start_view_index_compactor(BucketName, DDocId,
                                             Kind, Type, InitialStatus),
      CompactorRef = erlang:monitor(process, Compactor),
  
      receive
          {'EXIT', Parent, Reason} = Exit ->
              ?log_debug("Got exit signal from parent: ~p", [Exit]),
  
              erlang:demonitor(CompactorRef),
              ok = ns_couchdb_api:cancel_view_compact(BucketName, DDocId, Kind, Type),
              exit(Reason);
          {'DOWN', CompactorRef, process, Compactor, normal} ->
              ok;
          {'DOWN', CompactorRef, process, Compactor, noproc} ->
              exit({index_compactor_died_too_soon,
                    BucketName, DDocId, Kind, Type});
          {'DOWN', CompactorRef, process, Compactor, Reason}
            when Reason =:= shutdown;
                 Reason =:= {updater_died, shutdown};
                 Reason =:= {updated_died, noproc};
                 Reason =:= {updater_died, {updater_error, shutdown}} ->
              do_spawn_view_index_compactor(Parent, BucketName,
                                            DDocId, Kind, Type, InitialStatus);
          {'DOWN', CompactorRef, process, Compactor, Reason} ->
              exit(Reason)
      end.
  
  
negative.code:                                     scheduled
                              end,
  
                ?log_info("Compacting indexes for ~s. Compaction is ~p", [ViewName, TriggerType]),
                process_flag(trap_exit, true),
  
                InitialStatus = [{original_target, OriginalTarget},
                                 {trigger_type, TriggerType}],
  
  