BLAT sounds good to me because it slightly funny in case you speak russian. "Node joined topology by BLAT (po blaty)" sounds reasonable :)
чт, 24 мая 2018 г. в 1:15, Dmitriy Setrakyan <dsetrak...@apache.org>: > Ed, > > Anyone speaking Russian would agree that BLAT is not a good name :) Let's > steak to BLT. > > D. > > On Wed, May 23, 2018 at 5:34 AM, Eduard Shangareev < > eduard.shangar...@gmail.com> wrote: > > > Igniters, > > > > We have invested too much in explaining BLAT. So, it would hard to change > > the name. > > I.e. I propose to save this term. > > > > > > New names for auto-adjust control. > > > > 1. org.apache.ignite.IgniteCluster > > > > *Add* > > isBaselineAutoAdjustEnabled() > > setBaselineAutoAdjustEnabled(boolean enabled); > > setBaselineAutoAdjustTimeout(long timeoutInMs); > > setBaselineAutoAdjustMaxTimeout(long timeoutInMs); > > > > 2. org.apache.ignite.configuration.IgniteConfiguration > > > > *Add* > > IgniteConfiguration setBaselineAutoAdjustEnabled(boolean enabled); > > IgniteConfiguration setBaselineAutoAdjustTimeout(long timeoutInMs); > > IgniteConfiguration setBaselineAutoAdjustMaxTimeout(long timeoutInMs); > > > > Any objections? > > > > > > > > On Fri, May 4, 2018 at 10:01 PM, Dmitriy Setrakyan < > dsetrak...@apache.org> > > wrote: > > > > > I do not like the name "current" on the methods. I think we should just > > > remove it, e.g. currentAffinityTopology() -> affinityTopology() > > > > > > D. > > > > > > On Fri, May 4, 2018 at 6:17 AM, Eduard Shangareev < > > > eduard.shangar...@gmail.com> wrote: > > > > > > > Igniters, > > > > > > > > With Vladimir's help, we analyzed another solution's approaches. > > > > And decided to simplify our affinity topology auto-adjusting. > > > > > > > > It should be enough to be able to turn on/off auto-adjusting (flag) > and > > > set > > > > 2 timeouts if it is working: > > > > -soft timeout which would be used if there was no other node > > joins/exits; > > > > -hard timeout which we would track from first discovery event and if > it > > > > reached then immediately would change affinity topology. > > > > > > > > All other strategies could be realized with API usage > > > (setAffinityTopology) > > > > and metrics tracking by user's monitoring tools. > > > > > > > > So, I suggest next API changes: > > > > > > > > org.apache.ignite.IgniteCluster > > > > > > > > *Deprecate*: > > > > Collection<BaselineNode> currentBaselineTopology(); > > > > void setBaselineTopology(Collection<? extends BaselineNode> > > > baselineTop); > > > > void setBaselineTopology(long topVer); > > > > > > > > *Replace them with* > > > > Collection<BaselineNode> currentAffinityTopology(); > > > > void setAffinityTopology(Collection<? extends BaselineNode> > > > affinityTop); > > > > void setAffinityTopology(long topVer); > > > > > > > > *Add* > > > > isAffinityTopologyAutoAdjustEnabled() > > > > setAffinityTopologyAutoAdjustEnabled(boolean enabled); > > > > > > > > org.apache.ignite.configuration.IgniteConfiguration > > > > > > > > *Add* > > > > IgniteConfiguration setAffinityTopologyAutoAdjustEnabled(boolean > > > enabled); > > > > IgniteConfiguration setAffinityTopologyAutoAdjustTimeout(long > > > > timeoutInMs); > > > > IgniteConfiguration setAffinityTopologyAutoAdjustMaxTimeout(long > > > > timeoutInMs); > > > > > > > > > > > > An open question is could we rename or duplicate BaselineNode with > > > > AffinityNode? > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, Apr 27, 2018 at 6:56 PM, Ivan Rakov <ivan.glu...@gmail.com> > > > wrote: > > > > > > > > > Eduard, > > > > > > > > > > +1 to your proposed API for configuring Affinity Topology change > > > > policies. > > > > > Obviously we should use "auto" as default behavior. I believe, > > > automatic > > > > > rebalancing is expected and more convenient for majority of users. > > > > > > > > > > Best Regards, > > > > > Ivan Rakov > > > > > > > > > > > > > > > On 26.04.2018 19:27, Eduard Shangareev wrote: > > > > > > > > > >> Igniters, > > > > >> > > > > >> Ok, I want to share my thoughts about "affinity topology (AT) > > changing > > > > >> policies". > > > > >> > > > > >> > > > > >> There would be three major option: > > > > >> -auto; > > > > >> -manual; > > > > >> -custom. > > > > >> > > > > >> 1. Automatic change. > > > > >> A user could set timeouts for: > > > > >> a. change AT on any topology change after some timeout > > > > (setATChangeTimeout > > > > >> in seconds); > > > > >> b. change AT on node left after some timeout > > > > (setATChangeOnNodeLeftTimeout > > > > >> in seconds); > > > > >> c. change AT on node join after some timeout > > > > (setATChangeOnNodeJoinTimeout > > > > >> in seconds). > > > > >> > > > > >> b and c are more specific, so they would override a. > > > > >> > > > > >> Also, I want to introduce a mechanism of merging AT changes, which > > > would > > > > >> be > > > > >> turned on by default. > > > > >> Other words, if we reached timeout than we would change AT to > > current > > > > >> topology, not that one which was on timeout schedule. > > > > >> > > > > >> 2. Manual change. > > > > >> > > > > >> Current behavior. A user change AT himself by console tools or web > > > > >> console. > > > > >> > > > > >> 3. Custom. > > > > >> > > > > >> We would give the option to set own realization of changing policy > > > > (class > > > > >> name in config). > > > > >> We should pass as incoming parameters: > > > > >> - current topology (collection of cluster nodes); > > > > >> - current AT (affinity topology); > > > > >> - map of GroupId to minimal alive backup number; > > > > >> - list of configuration (1.a, 1.b, 1.c); > > > > >> - scheduler. > > > > >> > > > > >> Plus to these configurations, I propose orthogonal option. > > > > >> 4. Emergency affinity topology change. > > > > >> It would change AT even MANUAL option is set if at least one cache > > > group > > > > >> backup factor goes below or equal chosen one (by default 0). > > > > >> So, if we came to situation when after node left there was only > > > primary > > > > >> partion (without backups) for some cache group we would change AT > > > > >> immediately. > > > > >> > > > > >> > > > > >> Thank you for your attention. > > > > >> > > > > >> > > > > >> On Thu, Apr 26, 2018 at 6:57 PM, Eduard Shangareev < > > > > >> eduard.shangar...@gmail.com> wrote: > > > > >> > > > > >> Dmitriy, > > > > >>> > > > > >>> I also think that we should think about 2.6 as the target. > > > > >>> > > > > >>> > > > > >>> On Thu, Apr 26, 2018 at 3:27 PM, Alexey Goncharuk < > > > > >>> alexey.goncha...@gmail.com> wrote: > > > > >>> > > > > >>> Dmitriy, > > > > >>>> > > > > >>>> I doubt we will be able to fit this in 2.5 given that we did not > > > even > > > > >>>> agree > > > > >>>> on the policy interface. Forcing in-memory caches to use > baseline > > > > >>>> topology > > > > >>>> will be an easy technical fix, however, we will need to update > and > > > > >>>> probably > > > > >>>> fix lots of failover tests, add new ones. > > > > >>>> > > > > >>>> I think it makes sense to target this change to 2.6. > > > > >>>> > > > > >>>> 2018-04-25 22:25 GMT+03:00 Ilya Lantukh <ilant...@gridgain.com > >: > > > > >>>> > > > > >>>> Eduard, > > > > >>>>> > > > > >>>>> I'm not sure I understand what you mean by "policy". Is it an > > > > interface > > > > >>>>> that will have a few default implementations and user will be > > able > > > to > > > > >>>>> create his own one? If so, could you please write an example of > > > such > > > > >>>>> interface (how you see it) and how and when it's methods will > be > > > > >>>>> > > > > >>>> invoked. > > > > >>>> > > > > >>>>> On Wed, Apr 25, 2018 at 10:10 PM, Eduard Shangareev < > > > > >>>>> eduard.shangar...@gmail.com> wrote: > > > > >>>>> > > > > >>>>> Igniters, > > > > >>>>>> I have described the issue with current approach in "New > > > definition > > > > >>>>>> > > > > >>>>> for > > > > >>>> > > > > >>>>> affinity node (issues with baseline)" topic[1]. > > > > >>>>>> > > > > >>>>>> Now we have 2 different affinity topology (one for in-memory, > > > > another > > > > >>>>>> > > > > >>>>> for > > > > >>>> > > > > >>>>> persistent caches). > > > > >>>>>> > > > > >>>>>> It causes problems: > > > > >>>>>> - we lose (in general) co-location between different caches; > > > > >>>>>> - we can't avoid PME when non-BLAT node joins cluster; > > > > >>>>>> - implementation should consider 2 different approaches to > > > affinity > > > > >>>>>> calculation. > > > > >>>>>> > > > > >>>>>> So, I suggest unifying behavior of in-memory and persistent > > > caches. > > > > >>>>>> They should all use BLAT. > > > > >>>>>> > > > > >>>>>> Their behaviors were different because we couldn't guarantee > the > > > > >>>>>> > > > > >>>>> safety > > > > >>>> > > > > >>>>> of > > > > >>>>> > > > > >>>>>> in-memory data. > > > > >>>>>> It should be fixed by a new mechanism of BLAT changing policy > > > which > > > > >>>>>> > > > > >>>>> was > > > > >>>> > > > > >>>>> already discussed there - "Triggering rebalancing on timeout or > > > > >>>>>> > > > > >>>>> manually > > > > >>>> > > > > >>>>> if > > > > >>>>> > > > > >>>>>> the baseline topology is not reassembled" [2]. > > > > >>>>>> > > > > >>>>>> And we should have a policy by default which similar to > current > > > one > > > > >>>>>> (add nodes, remove nodes automatically but after some > reasonable > > > > delay > > > > >>>>>> [seconds]). > > > > >>>>>> > > > > >>>>>> After this change, we could stop using the term 'BLAT', > Basline > > > and > > > > so > > > > >>>>>> > > > > >>>>> on. > > > > >>>>> > > > > >>>>>> Because there would not be an alternative. So, it would be > only > > > one > > > > >>>>>> possible Affinity Topology. > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> [1] > > > > >>>>>> http://apache-ignite-developers.2346864.n4.nabble. > > > > >>>>>> > > > > >>>>> com/New-definition-for- > > > > >>>>> > > > > >>>>>> affinity-node-issues-with-baseline-td29868.html > > > > >>>>>> [2] > > > > >>>>>> http://apache-ignite-developers.2346864.n4.nabble. > > > > >>>>>> com/Triggering-rebalancing-on-timeout-or-manually-if-the- > > > > >>>>>> baseline-topology-is-not-reassembled-td29299.html#none > > > > >>>>>> > > > > >>>>>> > > > > >>>>> > > > > >>>>> -- > > > > >>>>> Best regards, > > > > >>>>> Ilya > > > > >>>>> > > > > >>>>> > > > > >>> > > > > > > > > > > > > > > >