anchor.diff:  
   -ignore_xref([start_vnode/1]).
   
  --record(state, {partition, logs_map, clock, senders_awaiting_ack}).
  +-record(state, {partition, logs_map, clock, senders_awaiting_ack,
  +               last_read}).
   
   %% API
   -spec start_vnode(integer()) -> any().
  
positive.code:     {Current + 1, node()}.
  
  -ifdef(TEST).
  
  %% @doc Testing threshold_prune works as expected
  thresholdprune_test() ->
      Operations = [{log1, #operation{op_number=op1}},
                    {log1, #operation{op_number=op2}},
                    {log1, #operation{op_number=op3}},
                    {log1, #operation{op_number=op4}},
                    {log1, #operation{op_number=op5}}],
      Filtered = threshold_prune(Operations, op2),
      ?assertEqual([{log1, #operation{op_number=op3}},
                    {log1, #operation{op_number=op4}},
                    {log1, #operation{op_number=op5}}], Filtered).
  
  %% @doc Testing threshold_prune works even when there is no matching
  %%      op_id.
  thresholdprune_notmatching_test() ->
      Operations = [{log1, #operation{op_number=op1}},
                    {log1, #operation{op_number=op2}},
                    {log1, #operation{op_number=op3}},
                    {log1, #operation{op_number=op4}},
                    {log1, #operation{op_number=op5}}],
      Filtered = threshold_prune(Operations, op6),
      ?assertEqual([], Filtered).
  
  %% @doc Testing get_log_from_map works in both situations, when the key
  %%      is in the map and when the key is not in the map
  
negative.code: %%              LogId: Identifies the log to be read
  %%      Output: {vnode_id, Operations} | {error, Reason}
  %%
  handle_command({read_from, LogId, _From}, _Sender,
                 #state{partition=Partition, logs_map=Map, last_read=Lastread}=State) ->
      case get_log_from_map(Map, Partition, LogId) of
          {ok, Log} ->
              disk_log:sync(Log),
              {Continuation, Ops} = 
                  case disk_log:chunk(Log, Lastread) of
                      {error, Reason} -> {error, Reason};
                      {C, O} -> {C,O};
                      {C, O, _} -> {C,O};
                      eof -> {eof, []}
                  end,
              case Continuation of
                  error -> {reply, {error, Ops}, State};
                  eof -> {reply, {ok, Ops}, State};
                  _ -> {reply, {ok, Ops}, State#state{last_read=Continuation}}
              end;
          {error, Reason} ->
              {reply, {error, Reason}, State}
  