anchor.diff:  %% node.
   -spec add_replica(module(), bucket_name(), node(), node(), vbucket_id()) -> ok.
   add_replica(Policy, Bucket, SrcNode, DstNode, VBucket) ->
  +    assert_is_master_node(),
  +
       VBuckets =
           case get_replicator(Policy, Bucket, SrcNode, DstNode) of
               undefined ->
  
positive.code: 
  -spec kill_all_children(module(), bucket_name(), node() | [node()]) -> ok.
  kill_all_children(Policy, Bucket, Node) when is_atom(Node) ->
      try children(Policy, Bucket, Node) of
          Children ->
              lists:foreach(
                fun (Child) ->
                        kill_child(Policy, Bucket, Node, Child)
                end, Children)
      catch exit:{noproc, _} ->
              %% If the supervisor isn't running, obviously there's no
              %% replication.
              ok
      end;
  kill_all_children(Policy, Bucket, Nodes) ->
      try
          misc:parallel_map(
            fun (Node) ->
                    kill_all_children(Policy, Bucket, Node)
            end, Nodes, ?RPC_TIMEOUT)
      catch
          exit:timeout ->
  
negative.code:    when Change :: {Type, SrcNode :: node(), DstNode :: node(), vbucket_id()},
          Type :: add_replica | kill_replica.
  apply_changes(Policy, Bucket, ChangeTuples) ->
      assert_is_master_node(),
  
      ?log_info("Applying changes:~n~p~n", [ChangeTuples]),
  
      %% In 1.8.1 we clearly know what nodes are affected by change
  