anchor.diff:  
               case Is40 of
                   true ->
  -                    AllowedPeriod = proplists:get_value(allowed_time_period, ACSettings, []),
  -                    Fragmentation =
  -                        case MaybeIndex of
  -                            [] ->
  -                                [];
  -                            _ ->
  -                                [{fragmentation, misc:expect_prop_value(index_fragmentation_percentage, MaybeIndex)}]
  -                        end,
  -
  -                    {ok, _} = index_settings_manager:update(compaction,
  -                                                            [{interval, AllowedPeriod}] ++ Fragmentation);
  +                    case cluster_compat_mode:is_cluster_watson() of
  +                        true ->
  +                            new_index_compaction_settings(MaybeIndex);
  +                        false ->
  +                            old_index_compaction_settings(ACSettings, MaybeIndex)
  +                    end;
                   false ->
                       ok
               end,
   
               ns_audit:modify_compaction_settings(Req, ACSettings ++ MaybePurgeInterval ++ MaybeIndex),
               reply_json(Req, [], 200)
  +    end.
  +
  +old_index_compaction_settings(ACSettings, MaybeIndex) ->
  +    AllowedPeriod = proplists:get_value(allowed_time_period, ACSettings, []),
  +    Fragmentation =
  +        case MaybeIndex of
  +            [] ->
  +                [];
  +            _ ->
  +                [{fragmentation, misc:expect_prop_value(index_fragmentation_percentage, MaybeIndex)}]
  +        end,
  +
  +    {ok, _} = index_settings_manager:update(compaction,
  +                                            [{interval, AllowedPeriod}] ++ Fragmentation).
  +
  +new_index_compaction_settings(Settings) ->
  +    case proplists:get_value(index_fragmentation_percentage, Settings) of
  +        undefined ->
  +            ok;
  +        Val ->
  +            index_settings_manager:update(compaction, [{fragmentation, Val}])
  +    end,
  +    SetList = [{index_circular_compaction_days, daysOfWeek},
  +               {index_circular_compaction_abort, abort_outside},
  +               {index_circular_compaction_interval, interval}],
  +    Set = lists:filtermap(
  +            fun ({K, NewK}) ->
  +                    case proplists:get_value(K, Settings) of
  +                        undefined ->
  +                            false;
  +                        V ->
  +                            {true, {NewK, V}}
  +                    end
  +            end, SetList),
  +    case Set of
  +        [] ->
  +            ok;
  +        _ ->
  +            index_settings_manager:update(circularCompaction, Set)
  +    end,
  +    case proplists:get_value(index_compaction_mode, Settings) of
  +        undefined ->
  +            ok;
  +        Mode ->
  +            index_settings_manager:update(compactionMode, Mode)
       end.
   
   mk_number_field_validator_error_maker(JSONName, Msg, Args) ->
  
positive.code:                 false ->
                      []
              end,
  
      case ns_config:search(Config, autocompaction) of
          false ->
              do_build_auto_compaction_settings([], Extra);
          {value, ACSettings} ->
              do_build_auto_compaction_settings(ACSettings, Extra)
      end.
  
  build_bucket_auto_compaction_settings(Settings) ->
  
negative.code:                          [] -> [{error, "parallelDBAndViewCompaction", <<"parallelDBAndViewCompaction is missing">>}];
                           X -> X
                       end,
      PeriodTimeResults = parse_and_validat_time_interval("allowedTimePeriod",
                                                          Params),
      PurgeIntervalResults = (mk_number_field_validator(0.04, 60, Params, list_to_float))({"purgeInterval", purge_interval, "metadata purge interval"}),
  
      Errors0 = [{iolist_to_binary(Field), Msg} ||
  