anchor.diff:  				 end
   			 end,
   	    true = ets:insert(OpsCache, erlang:make_tuple(?FIRST_OP+NewListLen,0,[{1,Key},{2,{NewLength,NewListLen}},{3,OpId}|PrunedOps]));
  -        false ->
  +	false ->
               true = ets:insert(SnapshotCache, {Key, SnapshotDict})
       end.
   
  
positive.code:     {ok, ReadResult} = internal_read(key, Type, vectorclock:from_list([{dc1,1}, {dc2, 0}]), ignore, OpsCache, SnapshotCache),
      ?assertEqual(0, Type:value(ReadResult)).
  
  
  -endif.
  
negative.code:     NewId = ets:update_counter(OpsCache, Key,
  			       {3,1}),
      {Length,ListLen} = ets:lookup_element(OpsCache, Key, 2),
      %% Perform the GC incase the list is full, or every ?OPS_THRESHOLD operations (which ever comes first)
      case ((Length)>=ListLen) or ((NewId rem ?OPS_THRESHOLD) == 0) of
          true ->
              Type=DownstreamOp#clocksi_payload.type,
              SnapshotTime=DownstreamOp#clocksi_payload.snapshot_time,
              {_, _} = internal_read(Key, Type, SnapshotTime, ignore, OpsCache, SnapshotCache, true),
  	    %% Have to get the new ops dict because the interal_read can change it
  	    {Length1,ListLen1} = ets:lookup_element(OpsCache, Key, 2),
  	    true = ets:update_element(OpsCache, Key, [{Length1+?FIRST_OP,{NewId,DownstreamOp}}, {2,{Length1+1,ListLen1}}]);
          false ->
  	    true = ets:update_element(OpsCache, Key, [{Length+?FIRST_OP,{NewId,DownstreamOp}}, {2,{Length+1,ListLen}}])
      end.
  