anchor.diff:      ReadParameter_1 = ReadParameter#read_parameter{quorum = Quorum - 1},
       leo_storage_read_repairer:repair(ReadParameter_1, Redundancies, Metadata, Fun);
   
  -read_and_repair_2({error, not_found = Cause}, #read_parameter{key = _K}, []) ->
  +read_and_repair_2({error, not_found = Cause}, #read_parameter{key = _K}, _Redundancies) ->
       {error, Cause};
   read_and_repair_2({error, timeout = Cause}, #read_parameter{key = _K}, _Redundancies) ->
       ?output_warn("read_and_repair_2/3", _K, Cause),
       {error, Cause};
  -read_and_repair_2({error, Cause}, #read_parameter{key = _K}, []) ->
  +read_and_repair_2({error, Cause}, #read_parameter{key = _K}, _Redundancies) ->
       ?output_warn("read_and_repair_2/3", _K, Cause),
       {error, Cause};
  -
  -read_and_repair_2({error, Reason},
  -                  #read_parameter{key = _K,
  -                                  quorum = ReadQuorum} = ReadParameter, Redundancies) ->
  -    NumOfNodes = erlang:length([N || #redundant_node{node = N,
  -                                                     can_read_repair = true}
  -                                         <- Redundancies]),
  -    case (NumOfNodes >= ReadQuorum) of
  -        true ->
  -            read_and_repair(ReadParameter, Redundancies);
  -        false when Reason == not_found ->
  -            {error, not_found};
  -        false ->
  -            ?output_warn("read_and_repair_2/3", _K, Reason),
  -            {error, ?ERROR_COULD_NOT_GET_DATA}
  -    end;
   read_and_repair_2(_,_,_) ->
       {error, invalid_request}.
   
  
positive.code:                  timeout = Cause ->
                       {error, Cause}
               end,
      read_and_repair_2(Reply, ReadParameter, []).
  
  %% @private
  read_and_repair_2({ok, Metadata, #?OBJECT{data = Bin}}, #read_parameter{}, []) ->
      {ok, Metadata, Bin};
  read_and_repair_2({ok, match} = Reply, #read_parameter{}, []) ->
      Reply;
  read_and_repair_2({ok, Metadata, #?OBJECT{data = Bin}},
                    #read_parameter{quorum = Quorum} = ReadParameter, Redundancies) ->
  
negative.code:                   [#redundant_node{node = Node}|_], Redundancies) when Node == erlang:node() ->
      read_and_repair_2(
        get_fun(AddrId, Key, StartPos, EndPos), ReadParameter, Redundancies);
  
  read_and_repair_1(#read_parameter{addr_id   = AddrId,
                                    key       = Key,
                                    etag      = ETag,
  