anchor.diff:              proplists:get_value(reduce_phase_batch_size,
                                   Props, AppMax)
       end.
  +
  +%% @doc convert JSON struct properties with similar names to Erlang
  +%% atoms, since the HTTP interface has no way to send atoms natively
  +-spec delay_props_from_json(list()) -> [{atom(), term()}].
  +delay_props_from_json(JsonProps) ->
  +    Only1 = case lists:keyfind(<<"reduce_phase_only_1">>, 1, JsonProps) of
  +                {_, Only1V} ->
  +                    [{reduce_phase_only_1, Only1V}];
  +                false ->
  +                    []
  +            end,
  +    Batch = case lists:keyfind(<<"reduce_phase_batch_size">>, 1, JsonProps) of
  +                {_, BatchV} ->
  +                    [{reduce_phase_batch_size, BatchV}];
  +                false ->
  +                    []
  +            end,
  +    Only1 ++ Batch.
  
positive.code: calc_delay_max(#fitting_details{arg = {rct, _ReduceFun, ReduceArg}}) ->
      Props = case ReduceArg of
                  L when is_list(L) -> L;         % May or may not be a proplist
                  _                 -> []
              end,
      AppMax = app_helper:get_env(riak_kv, mapred_reduce_phase_batch_size, 20),
  
negative.code: %% ```
  %% X = Fun([C,B,A], Arg)
  %% '''
  %%
  %% To use `reduce_phase_only_1' and `reduce_phase_batch_size' over the
  %% HTTP interface, specify a JSON structure as the function's
  %% argument, as in:
  %% ```
  %% {...,"query":[...,{"reduce":{...,"arg":{"reduce_phase_batch_size":100}}}]}
  %% '''
  %% Or:
  %% ```
  %% {...,"query":[...,{"reduce":{...,"arg":{"reduce_phase_only1":true}}}]}
  %% '''
  %% The HTTP interface will translate that argument into a mochijson2
  %% structure (e.g. `{struct, [{<<"reduce_phase_only_1">>, true}]}'),
  %% which this fitting will understand.  This also provides a safe way
  %% to pass these arguments when using a reduce phase implemented in
  %% Javascript over the Protocol Buffer or native interfaces.
  %% Mochijson2 conversion will fail on the bare proplist, but will
  %% succeed at encoding this form.
  %%
  %% The exception to the batching controls is handoff.  Whenever a
  %% worker receives handoff from another worker, it immediately reduces
  