Design proposal: automatic creation of BaselineTopology

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Design proposal: automatic creation of BaselineTopology

Sergey Chugunov
Folks,

As we are getting to the conclusion on the discussion about cluster
automatic activation proposal [1] I would like to propose one more thing
that may also be useful here.

In addition to options of creating BLT (BTW, any ideas of a better name for
the concept are welcome; feel free to send a message to [1]) on first
cluster activation or preparing it with UI tools user will be allowed to
prepare a descriptor of desired BLT and provide it through java API or
configuration file.

Workflow is as follows:


   1. User specifies a descriptor for desired baseline topology.
   E.g. API like this may be used: Ignite.activation().
   setBaselineTopologyDescriptor(BaselineTopologyDescriptor descriptor).

   2. Descriptor contains list of IP addressed (address ranges) and ports
   where cluster nodes are expected to start.
   List may be continuous or may contain excludes.

   3. As this descriptor may be large and is used only once through a
   lifetime of the cluster I suggest to provide it either through java API or
   in a separate file but not in a regular configuration file.

   4. Descriptor may be set to a cluster of even one node; after being set,
   it will verify topology on event from each node joined the cluster and
   activate cluster/create BLT automatically when desired topology reached.

   5. When cluster already has a BLT in metastore, any descriptors from API
   calls or files are ignored.


This feature will also provide us a way to notify user when some unexpected
nodes are joining the cluster.
E.g. we may define a separate event and fire it each time when node
unexpected by topology descriptor joins the cluster.

Thoughts?


[1] http://apache-ignite-developers.2346864.n4.nabble.com/
Cluster-auto-activation-design-proposal-tt20295.html

Thanks,
Sergey.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Design proposal: automatic creation of BaselineTopology

dsetrakyan
I would call the setter setBaselineTopology, without the word Descriptor.

Also, perhaps this BaselineTopology should be a standard predicate, just
like the Node Filter we already have for ClusterGroup, so users could
provide a custom cluster initialization logic. We, of course, should
provide a default implementation of this predicate, which accepts a list of
IP addresses or host names.

Thoughts?

D.

On Fri, Aug 11, 2017 at 4:47 AM, Sergey Chugunov <[hidden email]>
wrote:

> Folks,
>
> As we are getting to the conclusion on the discussion about cluster
> automatic activation proposal [1] I would like to propose one more thing
> that may also be useful here.
>
> In addition to options of creating BLT (BTW, any ideas of a better name for
> the concept are welcome; feel free to send a message to [1]) on first
> cluster activation or preparing it with UI tools user will be allowed to
> prepare a descriptor of desired BLT and provide it through java API or
> configuration file.
>
> Workflow is as follows:
>
>
>    1. User specifies a descriptor for desired baseline topology.
>    E.g. API like this may be used: Ignite.activation().
>    setBaselineTopologyDescriptor(BaselineTopologyDescriptor descriptor).
>
>    2. Descriptor contains list of IP addressed (address ranges) and ports
>    where cluster nodes are expected to start.
>    List may be continuous or may contain excludes.
>
>    3. As this descriptor may be large and is used only once through a
>    lifetime of the cluster I suggest to provide it either through java API
> or
>    in a separate file but not in a regular configuration file.
>
>    4. Descriptor may be set to a cluster of even one node; after being set,
>    it will verify topology on event from each node joined the cluster and
>    activate cluster/create BLT automatically when desired topology reached.
>
>    5. When cluster already has a BLT in metastore, any descriptors from API
>    calls or files are ignored.
>
>
> This feature will also provide us a way to notify user when some unexpected
> nodes are joining the cluster.
> E.g. we may define a separate event and fire it each time when node
> unexpected by topology descriptor joins the cluster.
>
> Thoughts?
>
>
> [1] http://apache-ignite-developers.2346864.n4.nabble.com/
> Cluster-auto-activation-design-proposal-tt20295.html
>
> Thanks,
> Sergey.
>
Loading...