cassandra-pr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jolynch <...@git.apache.org>
Subject [GitHub] cassandra pull request #283: CASSANDRA-14459: DynamicEndpointSnitch should n...
Date Mon, 15 Oct 2018 23:39:51 GMT
Github user jolynch commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/283#discussion_r225350948
  
    --- Diff: src/java/org/apache/cassandra/service/StorageServiceMBean.java ---
    @@ -469,15 +469,22 @@
          * If {@code epSnitchClassName} is specified, it will configure a new snitch instance
and make it a
          * 'dynamic snitch' if {@code dynamic} is specified and {@code true}.
          *
    -     * The parameters {@code dynamicUpdateInterval}, {@code dynamicResetInterval} and
{@code dynamicBadnessThreshold}
    +     * The parameters {@code dynamicUpdateInterval}, {@code dynamicLatencyProbeInterval}
and {@code dynamicBadnessThreshold}
          * can be specified individually to update the parameters of the dynamic snitch during
runtime.
          *
    -     * @param epSnitchClassName        the canonical path name for a class implementing
IEndpointSnitch
    -     * @param dynamic                  boolean that decides whether dynamicsnitch is
used or not - only valid, if {@code epSnitchClassName} is specified
    -     * @param dynamicUpdateInterval    integer, in ms (defaults to the value configured
in cassandra.yaml, which defaults to 100)
    -     * @param dynamicResetInterval     integer, in ms (defaults to the value configured
in cassandra.yaml, which defaults to 600,000)
    -     * @param dynamicBadnessThreshold  double, (defaults to the value configured in cassandra.yaml,
which defaults to 0.0)
    +     * @param epSnitchClassName          the canonical path name for a class implementing
IEndpointSnitch
    +     * @param dynamicBadnessThreshold    double, (defaults to the value configured in
cassandra.yaml, which defaults to 0.0)
    +     * @param dynamic                    boolean that decides whether dynamicsnitch is
used or not - only valid, if {@code epSnitchClassName} is specified
    +     * @param dynamicUpdateInterval      integer, in ms (defaults to the value configured
in cassandra.yaml, which defaults to 100)
    +     * @param dynamicLatencyProbeInterval integer, in ms (defaults to the value configured
in cassandra.yaml, which defaults to 1,000)
          */
    +    public void updateSnitch(String epSnitchClassName, Double dynamicBadnessThreshold,
Boolean dynamic, Integer dynamicUpdateInterval, Integer dynamicLatencyProbeInterval) throws
ClassNotFoundException;
    --- End diff --
    
    Hm, like I said before, I didn't want to expose the DES pluggability in the JMX interface
since I wasn't sure that we wanted to support it as a user interface (I just want to give
a path forward for devs to experiment with different implementations which e.g. use different
measurement techniques or load (un)balancing techniques).
    
    Like you say, `IEndpointSnitch`'s are not configurable currently (they have to have an
empty constructor that e.g. calls their own `loadConfiguration` method a la `GossipingPropertyFileSnitch`.
I think requiring custom DES implementations to do something similar isn't unreasonable (and
it reduces complexity).
    



---

---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org


Mime
View raw message