anchor.diff:      {ok, Ring} = riak_core_ring_manager:get_raw_ring(),
       Mods = [Mod || {_, Mod} <- riak_core:vnode_modules()],
       State = #state{forwarding=[], handoff=[],
  -                   known_modules=[], never_started=[]},
  +                   known_modules=[], never_started=[], vnode_start_tokens=0},
       State2 = find_vnodes(State),
       AllVNodes = get_all_vnodes(Mods, State2),
       State3 = update_forwarding(AllVNodes, Mods, Ring, State2),
  
positive.code:                 forwarding :: [pid()],
                  handoff :: [{term(), integer(), pid(), node()}],
                  known_modules :: [term()],
                  never_started :: [{integer(), term()}]
                 }).
  
  -define(DEFAULT_OWNERSHIP_TRIGGER, 8).
  
negative.code:     KnownModules = [Mod | State#state.known_modules],
      State#state{known_modules=KnownModules, never_started=NeverStarted3}.
  
  maybe_start_vnodes(Ring, State) ->
      State2 = update_never_started(Ring, State),
      State3 = maybe_start_vnodes(State2),
      State3.
  
  maybe_start_vnodes(State=#state{vnode_start_tokens=Tokens,
                                  never_started=NeverStarted}) ->
      case {Tokens, NeverStarted} of
          {0, _} ->
              State;
          {_, []} ->
              State;
          {_, [{Idx, Mod} | NeverStarted2]} ->
              get_vnode(Idx, Mod, State),
              gen_server:cast(?MODULE, maybe_start_vnodes),
              State#state{vnode_start_tokens=Tokens-1,
                          never_started=NeverStarted2}
      end.
  