You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Sergey Chugunov (JIRA)" <ji...@apache.org> on 2017/11/14 14:51:00 UTC
[jira] [Assigned] (IGNITE-5850) Introduce an API for baseline
topology for persistence-enabled clusters
[ https://issues.apache.org/jira/browse/IGNITE-5850?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergey Chugunov reassigned IGNITE-5850:
---------------------------------------
Assignee: Sergey Chugunov
> Introduce an API for baseline topology for persistence-enabled clusters
> -----------------------------------------------------------------------
>
> Key: IGNITE-5850
> URL: https://issues.apache.org/jira/browse/IGNITE-5850
> Project: Ignite
> Issue Type: New Feature
> Components: persistence
> Affects Versions: 2.1
> Reporter: Alexey Goncharuk
> Assignee: Sergey Chugunov
> Labels: IEP-4, Phase-1
> Fix For: 2.4
>
>
> Since the persistence was introduced, we require that cluster be started in an inactive mode and activation happens only manually.
> We need to add a concept of baseline topology which is fixed on the first cluster activation and may be changed later by a user. We need to develop a consistent API facade for this purpose.
> I suggest to make the following changes:
> {code}
> public interface BaselineNode {
> public Object consistentId();
> public <T> T attribute(String name);
> public Map<String, Object> attributes();
> }
> public interface IgniteCluster {
> // .....
> @Nullable public Collection<BaselineNode> currentBaselineTopology();
> public void setBaselineTopology(Collection<BaselineNode> baselineTop);
> public void setBaselineTopology(long topVer);
> // ....
> }
> public interface ClusterNode extends BaselineNode {
> // ....
> }
> {code}
> This is a minimal yet sufficient API change allowing full-fledged baseline topology management both from API and from CLI or UI utilities.
> The topology change would look like so:
> {code}
> IgniteCluster cluster = ignite.cluster();
> Collection<BaselineNode> curTop = cluster.baselineTopology();
> for (ClusterNode node : cluster.topology(cluster.currentTopologyVersion())) {
> if (shouldAdd(node))
> curTop.add(node);
> }
> cluster.setBaselineTopology(curTop);
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)