anchor.diff:    noop;
     
   run_sync(Nodes, Partition) ->
  +  [Master|_] = Nodes,
     [NodeA,NodeB|_] = lib_misc:shuffle(Nodes),
     StorageName = list_to_atom(lists:concat([storage_, Partition])),
  -  sync_manager:start(Partition, NodeA, NodeB),
  +  KeyDiff = storage_server:diff({StorageName, NodeA}, {StorageName, NodeB}),
  +  sync_manager:sync(Partition, Master, NodeA, NodeB, length(KeyDiff)),
     storage_server:sync({StorageName, NodeA}, {StorageName, NodeB}),
     sync_manager:done(Partition).
     
positive.code: %% Internal functions
  
  loop(State = #state{name=Name,partition=Partition,paused=Paused}) ->
    Timeout = round((random:uniform() * 5 + 5) * 60000),
    Paused1 = receive
      pause -> true;
      play -> false
  
negative.code:     Paused -> ok;
      true ->
        Nodes = membership:nodes_for_partition(Partition),
        (catch run_sync(Nodes, Partition))
    end,
    sync_server:loop(State#state{paused=Paused1}).
  
  