anchor.diff:  	    {error, Reason}
       end.
   
  -%%-get_log_operations({key(),type(),bucket()}) -> [[{non_neg_integer(),#clocksi_payload{}]] | {error, term()}.
  +%% Takes as input a list of tuples of bound objects and snapshot times
  +%% Returns a list for each object that contains all logged update operations more recent than the give snapshot time
  +-spec get_log_operations([{bound_object(),snapshot_time()}]) -> [[{non_neg_integer(),#clocksi_payload{}}]] | {error, reason()}.
   get_log_operations(ObjectClockPairs) ->
       Res = get_log_operations_internal(ObjectClockPairs,[]),
       %% result is a list of lists of lists
  
positive.code: 	 get_txn_property/2]).
  %% ===========================================================
  
  %% -type op_param() :: term(). %% TODO: Define
  %% -type bound_object() :: {key(), type(), bucket()}.
  
  %% Public API
  
  -spec start() -> {ok, _} | {error, term()}.
  
negative.code: 
  get_log_operations_internal([],Acc) ->
      {ok,lists:reverse(Acc)};
  get_log_operations_internal([{{Key,Type,Bucket},Clock}|Rest],Acc) ->
      LogId = log_utilities:get_logid_from_key({Key,Bucket}),
      [Node] = log_utilities:get_preflist_from_key({Key,Bucket}),
      case logging_vnode:get_from_time(Node,LogId,Clock,Type,{Key,Bucket}) of
  	#snapshot_get_response{ops_list = Ops} ->
  	    get_log_operations_internal(Rest,[Ops|Acc]);
  	{error, Reason} ->
  