anchor.diff:  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
            terminate/2, code_change/3]).
   
  --record(state,{vnode_gets,vnode_puts,
  +-record(state,{vnode_gets,vnode_puts,vnode_gets_total,vnode_puts_total,
  +               node_gets_total, node_puts_total,
                  get_fsm_time,put_fsm_time}).
   
   %% @spec start_link() -> {ok,Pid} | ignore | {error,Error}
  
positive.code: init([]) ->
      {ok, #state{vnode_gets=spiraltime:fresh(),
                  vnode_puts=spiraltime:fresh(),
                  get_fsm_time=slide:fresh(),
                  put_fsm_time=slide:fresh()}}.
  
  
negative.code: 
  %% @spec vnode_stats(integer(), state()) -> proplist()
  %% @doc Get the vnode-sum stats proplist.
  vnode_stats(Moment, State=#state{vnode_gets_total=VGT, vnode_puts_total=VPT}) ->
      lists:append(
        [{F, spiral_minute(Moment, Elt, State)}
         || {F, Elt} <- [{vnode_gets, #state.vnode_gets},
                         {vnode_puts, #state.vnode_puts}]],
        [{vnode_gets_total, VGT}, 
         {vnode_puts_total, VPT}]).
            
  
  
  %% @spec node_stats(integer(), state()) -> proplist()
  %% @doc Get the node stats proplist.
  node_stats(Moment, State=#state{node_gets_total=NGT, node_puts_total=NPT}) ->
      {Gets, GetMean, {GetMedian, GetNF, GetNN, GetH}} =
          slide_minute(Moment, #state.get_fsm_time, State),
      {Puts, PutMean, {PutMedian, PutNF, PutNN, PutH}} =
          slide_minute(Moment, #state.put_fsm_time, State),
      [{node_gets, Gets},
       {node_gets_total, NGT},
       {node_get_fsm_time_mean, GetMean},
       {node_get_fsm_time_median, GetMedian},
       {node_get_fsm_time_95, GetNF},
       {node_get_fsm_time_99, GetNN},
       {node_get_fsm_time_100, GetH},
       {node_puts, Puts},
       {node_puts_total, NPT},
       {node_put_fsm_time_mean, PutMean},
       {node_put_fsm_time_median, PutMedian},
       {node_put_fsm_time_95, PutNF},
  