Dmitriy,

An offline node is a node that was present in a cluster, but either
disconnected or failed and the corresponding event is fired by the
discovery SPI. In this case, the cluster will not attempt to rebalance data
and change affinity assignments until it is either confirmed manually via
conf tools or programmatically via the new API that this node is unlikely
to recover. Once confirmed, the cluster should create additional replicas.
(Of course, we will keep the old mode when each topology change will
trigger affinity reassignment). When a node is failed, but present in
baseline topology, it is still taken into account for affinity calculation,
thus preserving the partition assignment. This helps to avoid unnecessary
rebalancing and speeds up the partition map exchange.

2017-11-08 0:09 GMT+03:00 Dmitriy Setrakyan <dsetrak...@apache.org>:

> Alexey, can you explain what an offline node means, if it is not an
> endpoint? Can it become an online node? If you could describe the
> transition steps of how a node goes offline and online, it would help.
>
> D.
>
> On Tue, Nov 7, 2017 at 4:01 PM, Alexey Goncharuk <
> alexey.goncha...@gmail.com
> > wrote:
>
> > Why not? To me, the endpoint in the name suggests that this is something
> > intended to connect to, however, the interface just denotes a node that
> can
> > be offline, so I think it still has to be a 'Node'.
> >
> > 2017-11-06 22:52 GMT+03:00 Dmitriy Setrakyan <dsetrak...@apache.org>:
> >
> > > Got it. In that case, I do not think that BaselineNode is a correct
> > > abstraction. How about ClusterEndpoint?
> > >
> > > D.
> > >
> > > On Sun, Nov 5, 2017 at 2:12 AM, Alexey Goncharuk <
> > > alexey.goncha...@gmail.com
> > > > wrote:
> > >
> > > > Dmitriy,
> > > >
> > > > The main point of having a BaselineNode interface is that baseline
> > > topology
> > > > will contain nodes even when they are offline. When a node is
> offline,
> > > most
> > > > of the methods on ClusterNode are meaningless, thus the new interface
> > > (for
> > > > example, node ID). I left on the interface only methods which will
> > > reliably
> > > > return data.
> > > >
> > > > Ilya,
> > > >
> > > > For now, we must keep the old AffinityFunction interface, but we can
> > > change
> > > > it in the AI 3.0.
> > > >
> > > > --AG
> > > >
> > > > 2017-11-04 17:56 GMT+03:00 Dmitriy Setrakyan <dsetrak...@apache.org
> >:
> > > >
> > > > > Alexey, what is the point of BaselineNode interface? Why not just
> > have
> > > > > ClusterNode?
> > > > >
> > > > > On Fri, Nov 3, 2017 at 11:26 PM, Alexey Goncharuk <
> > > > > alexey.goncha...@gmail.com> wrote:
> > > > >
> > > > > > Guys,
> > > > > >
> > > > > > We are getting closer to the baseline topology finalization. As a
> > > first
> > > > > > step, I would like to request a review of the baseline topology
> > > > > management
> > > > > > API. The changes are summarized in [1]. In my opinion, changes
> are
> > > > quite
> > > > > > simple and concise. Also, as a side note, I suggest moving
> cluster
> > > > > > activation methods to the IgniteCluter facade as well because the
> > > > facade
> > > > > > itself looks like a good place for management API. Looks like the
> > > > > original
> > > > > > decision to place it on Ignite was wrong.
> > > > > >
> > > > > > Thanks!
> > > > > >
> > > > > > [1] https://issues.apache.org/jira/browse/IGNITE-5850
> > > > > >
> > > > > > 2017-09-04 17:46 GMT+03:00 Dmitriy Setrakyan <
> > dsetrak...@apache.org
> > > >:
> > > > > >
> > > > > > > On Mon, Sep 4, 2017 at 6:13 AM, Sergey Chugunov <
> > > > > > sergey.chugu...@gmail.com
> > > > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Dmitriy,
> > > > > > > >
> > > > > > > > I like the idea of ClusterActivator interface.
> > > > > > > >
> > > > > > > > From user perspective it provides the same functionality as
> the
> > > > > setter
> > > > > > > but
> > > > > > > > in more clear and intuitive way.
> > > > > > > >
> > > > > > >
> > > > > > > BTW, I made a naming mistake in the original email. The setter
> > name
> > > > > > should
> > > > > > > be "setClusterActivator(...).
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > Also it gives us a good place to put all the documentation
> > about
> > > > the
> > > > > > > > feature.
> > > > > > > >
> > > > > > >
> > > > > > > Agree. Another advantage is that users can now provide custom
> > logic
> > > > for
> > > > > > the
> > > > > > > initial cluster activation.
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > Any other opinions?
> > > > > > > >
> > > > > > >
> > > > > > > Alexey Goncharuk, given that you provided the initial
> > > implementation
> > > > of
> > > > > > the
> > > > > > > cluster activation, can you please take a look at this design
> and
> > > > > provide
> > > > > > > comments?
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > On Fri, Sep 1, 2017 at 2:35 PM, Dmitriy Setrakyan <
> > > > > > dsetrak...@apache.org
> > > > > > > >
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > How about this:
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > *interface ClusterActivator {*
> > > > > > > > > > *    boolean activate(Collection<IgniteNode> nodes);**}*
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Out of the box, we can provide this implementation of the
> > > > > activation
> > > > > > > > > filter:
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > *ClusterInitialActiveSet implements ClusterActivator { *
> > > > > > > > > > *    InigeInitialActiveSet(String... addresses);**}*
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Then user configuration can look as follows:
> > > > > > > > >
> > > > > > > > > *IgniteConfiguration.setActivationFilter(new
> > > > > > > > > > ClusterInitialActiveSet("1.2.3.4", "4.3.2.1", etc));*
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Thoughts?
> > > > > > > > >
> > > > > > > > > D.
> > > > > > > > >
> > > > > > > > > On Fri, Sep 1, 2017 at 1:47 PM, Sergey Chugunov <
> > > > > > > > sergey.chugu...@gmail.com
> > > > > > > > > >
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Dmitriy,
> > > > > > > > > >
> > > > > > > > > > The idea is interesting however I cannot come up with a
> > clear
> > > > use
> > > > > > > case
> > > > > > > > > > which can be widely adopted.
> > > > > > > > > > I would give users a simple API at first to cover 80% of
> > > their
> > > > > > needs
> > > > > > > > and
> > > > > > > > > > then collect some feedback and start thinking about
> adding
> > > new
> > > > > > > > > > functionality.
> > > > > > > > > >
> > > > > > > > > > Makes sense?
> > > > > > > > > >
> > > > > > > > > > Sergey.
> > > > > > > > > >
> > > > > > > > > > On Thu, Aug 31, 2017 at 3:55 AM, Dmitriy Setrakyan <
> > > > > > > > > dsetrak...@apache.org>
> > > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > Hm... Can we also ask user to optionally provide a
> > > predicate
> > > > > > which
> > > > > > > > will
> > > > > > > > > > > receive a collection of nodes started so far and return
> > > true
> > > > if
> > > > > > the
> > > > > > > > > > > activation should happen? Will it be useful?
> > > > > > > > > > >
> > > > > > > > > > > On Wed, Aug 30, 2017 at 6:28 PM, Sergey Chugunov <
> > > > > > > > > > > sergey.chugu...@gmail.com>
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Nick,
> > > > > > > > > > > >
> > > > > > > > > > > > As I summed up in this thread above, calling setter
> for
> > > > > initial
> > > > > > > > > > > activation
> > > > > > > > > > > > nodes is not the only option:
> > > > > > > > > > > >
> > > > > > > > > > > >    1. user starts up new cluster of desired number of
> > > nodes
> > > > > and
> > > > > > > > > > activates
> > > > > > > > > > > >    it using existing API.
> > > > > > > > > > > >    BLT is created with all nodes presented in the
> > cluster
> > > > at
> > > > > > the
> > > > > > > > > moment
> > > > > > > > > > > of
> > > > > > > > > > > >    activation, no API is needed;
> > > > > > > > > > > >
> > > > > > > > > > > >    2. user prepares BLT using web-console or visor
> CMD
> > > > tools
> > > > > > and
> > > > > > > > sets
> > > > > > > > > > it
> > > > > > > > > > > to
> > > > > > > > > > > >    the cluster. New API setter is needed:
> > > > > > > > > > > >    Ignite.activation().setInitialActivationNodes(
> > > > Collection<
> > > > > > > > > > ClusterNode>
> > > > > > > > > > > >    nodes);
> > > > > > > > > > > >
> > > > > > > > > > > >    3. user provides via static configuration a list
> of
> > > > nodes
> > > > > > that
> > > > > > > > are
> > > > > > > > > > > >    expected to be in the cluster.
> > > > > > > > > > > >    User starts nodes one by one; when all
> preconfigured
> > > > nodes
> > > > > > are
> > > > > > > > > > started
> > > > > > > > > > > >    cluster is activated and BLT is created.
> > > > > > > > > > > >    As list of nodes may be huge it is provided via
> > > separate
> > > > > > file
> > > > > > > to
> > > > > > > > > > avoid
> > > > > > > > > > > >    flooding main configuration.
> > > > > > > > > > > >
> > > > > > > > > > > > So the option you proposed is already in the list.
> > > > > > > > > > > >
> > > > > > > > > > > > As for idea of activating cluster based only on
> number
> > of
> > > > > nodes
> > > > > > > may
> > > > > > > > > be
> > > > > > > > > > > > risky.
> > > > > > > > > > > > E.g. if user starts up with data stored on disk and
> > > > > unexpected
> > > > > > > node
> > > > > > > > > > joins
> > > > > > > > > > > > the topology.
> > > > > > > > > > > > Cluster will get activated with N-1 nodes where all
> the
> > > > data
> > > > > is
> > > > > > > > > > presented
> > > > > > > > > > > > and one node completely empty. Data loss may happen
> in
> > > such
> > > > > > > > scenario.
> > > > > > > > > > > >
> > > > > > > > > > > > Thanks,
> > > > > > > > > > > > Sergey.
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > On Wed, Aug 30, 2017 at 4:23 PM, Nick Pordash <
> > > > > > > > nickpord...@gmail.com
> > > > > > > > > >
> > > > > > > > > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > How is a user expected to produce a collection of
> > > > > ClusterNode
> > > > > > > > prior
> > > > > > > > > > to
> > > > > > > > > > > > all
> > > > > > > > > > > > > of the expected nodes joining? Users don't create
> > > > instances
> > > > > > of
> > > > > > > > > this,
> > > > > > > > > > so
> > > > > > > > > > > > as
> > > > > > > > > > > > > far as I can tell it would have to be retrieved
> from
> > > > > > > > IgniteCluster.
> > > > > > > > > > > > > However, would doing that and calling the proposed
> > > method
> > > > > be
> > > > > > > > really
> > > > > > > > > > any
> > > > > > > > > > > > > different than calling Ignite.activate and using
> the
> > > > > current
> > > > > > > set
> > > > > > > > of
> > > > > > > > > > > > server
> > > > > > > > > > > > > nodes as that collection?
> > > > > > > > > > > > >
> > > > > > > > > > > > > From a user's perspective is it really necessary
> that
> > > > > > specific
> > > > > > > > > nodes
> > > > > > > > > > > need
> > > > > > > > > > > > > to be identified vs saying that they expect N
> server
> > > > nodes
> > > > > to
> > > > > > > be
> > > > > > > > in
> > > > > > > > > > the
> > > > > > > > > > > > > cluster for auto activation?
> > > > > > > > > > > > >
> > > > > > > > > > > > > -Nick
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Wed, Aug 30, 2017, 1:23 AM Sergey Chugunov <
> > > > > > > > > > > sergey.chugu...@gmail.com
> > > > > > > > > > > > >
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Dmitriy,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Now I see your point and I think you're right.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > We can give end-user a simple setter like
> > > > > > > > > > > > > > Ignite::activation::setInitialActivationNodes(
> > > > > > > > > > > Collection<ClusterNode>
> > > > > > > > > > > > > > nodes) to provide collection of nodes that grid
> > must
> > > > > reach
> > > > > > to
> > > > > > > > > > > activate
> > > > > > > > > > > > > > automatically.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > And then using the collection we'll create
> > > > > BaselineTopology
> > > > > > > > > > > abstraction
> > > > > > > > > > > > > > internally.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > As a result user won't be exposed to our internal
> > > > > > > abstractions
> > > > > > > > > and
> > > > > > > > > > > will
> > > > > > > > > > > > > > work with intuitive concept of collection of
> nodes.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > Sergey.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Mon, Aug 28, 2017 at 4:39 PM, Dmitriy
> Setrakyan
> > <
> > > > > > > > > > > > > dsetrak...@apache.org>
> > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Sergey, the interface you are suggesting is
> > > internal,
> > > > > not
> > > > > > > > > > external.
> > > > > > > > > > > > Why
> > > > > > > > > > > > > > > should user ever see it or care about it?
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > D.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Mon, Aug 28, 2017 at 3:18 PM, Sergey
> Chugunov
> > <
> > > > > > > > > > > > > > > sergey.chugu...@gmail.com>
> > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Dmitriy,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > It was my misunderstanding, I believe that
> > setter
> > > > is
> > > > > > not
> > > > > > > > > enough
> > > > > > > > > > > and
> > > > > > > > > > > > > we
> > > > > > > > > > > > > > > need
> > > > > > > > > > > > > > > > a full-fledged entity.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > We should also be able to check if BLTs are
> > > > > compatible.
> > > > > > > > > > Interface
> > > > > > > > > > > > > looks
> > > > > > > > > > > > > > > > like this and use case for this functionality
> > is
> > > > > > > described
> > > > > > > > > > below.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > interface BaselineTopology {
> > > > > > > > > > > > > > > >    Collection<ClusterNode> nodes();
> > > > > > > > > > > > > > > >    boolean isCompatibleWith(BaselineTopology
> > > blt);
> > > > > > > > > > > > > > > > }
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Let's consider the following scenario:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >    1. We have a grid with N nodes: it is up,
> > > active
> > > > > and
> > > > > > > has
> > > > > > > > > > data
> > > > > > > > > > > in
> > > > > > > > > > > > > it.
> > > > > > > > > > > > > > > ->
> > > > > > > > > > > > > > > >    BLT #1 created.
> > > > > > > > > > > > > > > >    2. We shutdown the grid. Then divide it
> into
> > > two
> > > > > > > parts:
> > > > > > > > > > > > Part1_grid
> > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > >    Part2_grid.
> > > > > > > > > > > > > > > >    3. We start and activate Part1_grid .
> > Topology
> > > > has
> > > > > > > > changed
> > > > > > > > > > ->
> > > > > > > > > > > > > BLT#2
> > > > > > > > > > > > > > > >    created.
> > > > > > > > > > > > > > > >    After that we shutdown that Part1_grid.
> > > > > > > > > > > > > > > >    4. We start and activate Part2_grid.
> > Topology
> > > > also
> > > > > > has
> > > > > > > > > > changed
> > > > > > > > > > > > ->
> > > > > > > > > > > > > > > BLT#3
> > > > > > > > > > > > > > > >    created.
> > > > > > > > > > > > > > > >    5. Then we start Part1_grid and it's nodes
> > try
> > > > to
> > > > > > join
> > > > > > > > > > > > Part2_grid.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > If join is successful we have an undefined
> > state
> > > of
> > > > > the
> > > > > > > > > > resulting
> > > > > > > > > > > > > grid:
> > > > > > > > > > > > > > > > values for the same key may (and will) differ
> > > > between
> > > > > > > grid
> > > > > > > > > > parts.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > So to prevent this we should keep nodes with
> > > BLT#2
> > > > > from
> > > > > > > > > joining
> > > > > > > > > > > the
> > > > > > > > > > > > > > grid
> > > > > > > > > > > > > > > > with BLT#3. And we should fail nodes with an
> > > error
> > > > > > > message.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > Sergey.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Wed, Aug 23, 2017 at 5:47 AM, Dmitriy
> > > Setrakyan
> > > > <
> > > > > > > > > > > > > > > dsetrak...@apache.org>
> > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Sergey, I am still confused. What is the
> > > > > > > BaselineTopology
> > > > > > > > > > > > interface
> > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > your
> > > > > > > > > > > > > > > > > example? I thought that you agreed with me
> > that
> > > > we
> > > > > > > simply
> > > > > > > > > > need
> > > > > > > > > > > a
> > > > > > > > > > > > > > setter
> > > > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > > activation nodes, no?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > D.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Tue, Aug 22, 2017 at 4:47 AM, Sergey
> > > Chugunov
> > > > <
> > > > > > > > > > > > > > > > > sergey.chugu...@gmail.com>
> > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Dmitriy,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > As I understand you use the term
> > > > > > > > "minimalActivationNodes"
> > > > > > > > > > as
> > > > > > > > > > > a
> > > > > > > > > > > > > > > synonym
> > > > > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > > > BaselineTopology concept.
> > > > > > > > > > > > > > > > > > In that case I agree with you that we can
> > > > replace
> > > > > > > both
> > > > > > > > > > > > > "establish*"
> > > > > > > > > > > > > > > > > methods
> > > > > > > > > > > > > > > > > > with a simple setter method (see below in
> > > > > summary).
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Summing up the whole discussion I see the
> > > > > > > functionality
> > > > > > > > > as
> > > > > > > > > > > > > > following:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > New concept BaselineTopology is
> introduced.
> > > The
> > > > > > main
> > > > > > > > > > features
> > > > > > > > > > > > it
> > > > > > > > > > > > > > > > enables
> > > > > > > > > > > > > > > > > > are:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >    1. automatic activation of cluster;
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >    2. easy management of cluster topology
> > > > changes
> > > > > > > > > (planned
> > > > > > > > > > > > nodes
> > > > > > > > > > > > > > > > > >    maintenance, adding new nodes etc);
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >    3. eliminating of rebalancing traffic
> on
> > > > > > > short-term
> > > > > > > > > node
> > > > > > > > > > > > > > failures.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Use cases to create BLT:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >    1. user starts up new cluster of
> desired
> > > > > number
> > > > > > of
> > > > > > > > > nodes
> > > > > > > > > > > and
> > > > > > > > > > > > > > > > activates
> > > > > > > > > > > > > > > > > >    it using existing API. BLT is created
> > with
> > > > all
> > > > > > > nodes
> > > > > > > > > > > > presented
> > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > >    cluster at the moment of activation,
> no
> > > API
> > > > is
> > > > > > > > needed;
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >    2. user prepares BLT using web-console
> > or
> > > > > visor
> > > > > > > CMD
> > > > > > > > > > tools
> > > > > > > > > > > > and
> > > > > > > > > > > > > > sets
> > > > > > > > > > > > > > > > it
> > > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > >    the cluster. New API setter is needed:
> > > > > > > > > > > > > > > > > >    Ignite.activation().setBaselin
> > > > > > > > > > eTopology(BaselineTopology
> > > > > > > > > > > > > blt);
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >    3. user provides via static
> > configuration
> > > a
> > > > > list
> > > > > > > of
> > > > > > > > > > nodes
> > > > > > > > > > > > that
> > > > > > > > > > > > > > are
> > > > > > > > > > > > > > > > > >    expected to be in the cluster.
> > > > > > > > > > > > > > > > > >    User starts nodes one by one; when all
> > > > > > > preconfigured
> > > > > > > > > > nodes
> > > > > > > > > > > > are
> > > > > > > > > > > > > > > > started
> > > > > > > > > > > > > > > > > >    cluster is activated and BLT is
> created.
> > > > > > > > > > > > > > > > > >    As list of nodes may be huge it is
> > > provided
> > > > > via
> > > > > > > > > separate
> > > > > > > > > > > > file
> > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > avoid
> > > > > > > > > > > > > > > > > >    flooding main configuration.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Igniters, does this description match
> with
> > > your
> > > > > > > > > > understanding
> > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > functionality? If it does I'll create a
> set
> > > of
> > > > > > > tickets
> > > > > > > > > and
> > > > > > > > > > > > start
> > > > > > > > > > > > > > > > working
> > > > > > > > > > > > > > > > > on
> > > > > > > > > > > > > > > > > > implementation.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > Sergey.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Sat, Aug 19, 2017 at 5:41 PM, Dmitriy
> > > > > Setrakyan
> > > > > > <
> > > > > > > > > > > > > > > > > dsetrak...@apache.org>
> > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > I still do not see why anyone would
> > > > explicitly
> > > > > > call
> > > > > > > > > > these 2
> > > > > > > > > > > > > > > methods:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > *Ignite::activation::
> > > > > > establishBaselineTopology();*
> > > > > > > > > > > > > > > > > > > *Ignite::activation::
> > > > > establishBaselineTopology(
> > > > > > > > > > > > > BaselineTopology
> > > > > > > > > > > > > > > > > > bltTop);*
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > For example, if a web console, or some
> > > other
> > > > > > admin
> > > > > > > > > > process,
> > > > > > > > > > > > > want
> > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > automatically set currently started
> nodes
> > > as
> > > > > the
> > > > > > > > > baseline
> > > > > > > > > > > > > > topology,
> > > > > > > > > > > > > > > > > > > shouldn't they just call a setter for
> > > > > > > > > > > minimalActivationNodes?
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > D.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Fri, Aug 18, 2017 at 10:18 AM,
> Alexey
> > > > > > Dmitriev <
> > > > > > > > > > > > > > > > > > admitr...@gridgain.com>
> > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > API is proposed in the head of the
> > thread
> > > > by
> > > > > > > > Sergey,
> > > > > > > > > > as I
> > > > > > > > > > > > > > > > understood:
> > > > > > > > > > > > > > > > > > > > ______________________________
> > > > > > > > > ________________________
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > API for BaselineTopology manipulation
> > may
> > > > > look
> > > > > > > like
> > > > > > > > > > this:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > *Ignite::activation::
> > > > > > > establishBaselineTopology();*
> > > > > > > > > > > > > > > > > > > > *Ignite::activation::
> > > > > > establishBaselineTopology(
> > > > > > > > > > > > > BaselineTopology
> > > > > > > > > > > > > > > > > > > bltTop);*
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Both methods will establish BT and
> > > activate
> > > > > > > cluster
> > > > > > > > > > once
> > > > > > > > > > > it
> > > > > > > > > > > > > is
> > > > > > > > > > > > > > > > > > > established.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > The first one allows user to
> establish
> > BT
> > > > > using
> > > > > > > > > current
> > > > > > > > > > > > > > topology.
> > > > > > > > > > > > > > > > If
> > > > > > > > > > > > > > > > > > any
> > > > > > > > > > > > > > > > > > > > changes happen to the topology during
> > > > > > > establishing
> > > > > > > > > > > process,
> > > > > > > > > > > > > > user
> > > > > > > > > > > > > > > > will
> > > > > > > > > > > > > > > > > > be
> > > > > > > > > > > > > > > > > > > > notified and allowed to proceed or
> > abort
> > > > the
> > > > > > > > > procedure.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Second method allows to use some
> > > > > > > > > > monitoring'n'management
> > > > > > > > > > > > > tools
> > > > > > > > > > > > > > > like
> > > > > > > > > > > > > > > > > > > > WebConsole where user can prepare a
> > list
> > > of
> > > > > > > nodes,
> > > > > > > > > > using
> > > > > > > > > > > > them
> > > > > > > > > > > > > > > > create
> > > > > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > > > BT
> > > > > > > > > > > > > > > > > > > > and send to the cluster a command to
> > > > finally
> > > > > > > > > establish
> > > > > > > > > > > it.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > From high level BaselineTopology
> entity
> > > > > > contains
> > > > > > > > only
> > > > > > > > > > > > > > collection
> > > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > > nodes:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > *BaselineTopology {*
> > > > > > > > > > > > > > > > > > > > *  Collection<TopologyNode> nodes;*
> > > > > > > > > > > > > > > > > > > > *}*
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > *TopologyNode* here contains
> > information
> > > > > about
> > > > > > > > node -
> > > > > > > > > > its
> > > > > > > > > > > > > > > > consistent
> > > > > > > > > > > > > > > > > id
> > > > > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > set of user attributes used to
> > calculate
> > > > > > affinity
> > > > > > > > > > > function.
> > > > > > > > > > > > > > > > > > > > ______________________________
> > > > ______________
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > --
> > > > > > > > > > > > > > > > > > > > View this message in context:
> > > > > > > > http://apache-ignite-
> > > > > > > > > > > > > > > > > > > > developers.2346864.n4.nabble.
> > > > > > > > > > > com/Cluster-auto-activation-
> > > > > > > > > > > > > > > > > > > > design-proposal-tp20295p21066.html
> > > > > > > > > > > > > > > > > > > > Sent from the Apache Ignite
> Developers
> > > > > mailing
> > > > > > > list
> > > > > > > > > > > archive
> > > > > > > > > > > > > at
> > > > > > > > > > > > > > > > > > > Nabble.com.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to