<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:54:15 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[CONTROLLER-934] Clustering : Programmatic Cluster configuration</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-934</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Cluster members are defined statically in akka.conf. New cluster configurations requires changing this file on each system and restarting the controllers.&lt;/p&gt;

&lt;p&gt;Update to provide a way to programmatically configure a cluster including options that are currently part of akka.conf and potentially others we want to support. In general:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Controller&apos;s address (IP/Hostname)&lt;/li&gt;
	&lt;li&gt;Other cluster member&apos;s addresses (IP/Hostname) including Akka &quot;seed nodes&quot;&lt;/li&gt;
	&lt;li&gt;Akka-specific config (ActorSystem config, logging, serializer, etc.)&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Provide a REST interface to create/destroy a team?&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25488">CONTROLLER-934</key>
            <summary>Clustering : Programmatic Cluster configuration</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="kalaiselvi_k@dell.com">Kalaiselvi</assignee>
                                    <reporter username="mark.mozolewski@hp.com">Mark Mozolewski</reporter>
                        <labels>
                    </labels>
                <created>Tue, 14 Oct 2014 16:22:54 +0000</created>
                <updated>Thu, 7 Jan 2016 15:07:22 +0000</updated>
                            <resolved>Thu, 7 Jan 2016 15:07:22 +0000</resolved>
                                    <version>Helium</version>
                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="49538" author="tpantelis" created="Tue, 3 Feb 2015 22:59:59 +0000"  >&lt;p&gt;We could use JMX actions and jolokia&apos;s REST API. I would think jolokia supports POST for actions.&lt;/p&gt;</comment>
                            <comment id="49539" author="mark.mozolewski@hp.com" created="Wed, 4 Feb 2015 17:30:45 +0000"  >&lt;p&gt;(In reply to Tom Pantelis from comment #1)&lt;br/&gt;
&amp;gt; We could use JMX actions and jolokia&apos;s REST API. I would think jolokia&lt;br/&gt;
&amp;gt; supports POST for actions.&lt;/p&gt;

&lt;p&gt;Is performing all our configuration changes on the Cluster subsystem via JMX (with Jolokia for REST/HTTP access) in line with &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1064&quot; title=&quot;Clustering : Move all clustering configuration to config sub-system&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1064&quot;&gt;&lt;del&gt;CONTROLLER-1064&lt;/del&gt;&lt;/a&gt; bringing all our clustering configuration under the Config Subsystem? &lt;/p&gt;

&lt;p&gt;I&apos;d like to make sure all existing config (like distributed-datastore-provider.yang) and new config for cluster/shard formation, and maybe even Akka are accessed in a consistent way. Thanks.&lt;/p&gt;</comment>
                            <comment id="49540" author="tpantelis" created="Wed, 4 Feb 2015 18:06:11 +0000"  >&lt;p&gt;Yeah - we&apos;ll have to see if the config system will be sufficient for what we want to do. The config system does support JMX but currently the CDS JMX beans aren&apos;t integrated with the config system. The config system has limitations. Also if/how the config system deals with upgrades is not clear.&lt;/p&gt;</comment>
                            <comment id="49541" author="tpantelis" created="Wed, 4 Feb 2015 18:51:44 +0000"  >&lt;p&gt;I think regardless of how the JMX beans are registered (via config system or not) I think we could use JMX actions as we&apos;ll likely want to apply the config changes to the running system as well as persist it. Either that or use a yang-defined RPC accessed via restconf.&lt;/p&gt;</comment>
                            <comment id="49542" author="moraja@cisco.com" created="Tue, 18 Aug 2015 16:22:54 +0000"  >&lt;p&gt;This bug covers two things,&lt;/p&gt;

&lt;p&gt;1. Dynamically adding/removing new controller nodes to a cluster&lt;br/&gt;
2. Dynamically adding/removing shard replicas&lt;/p&gt;

&lt;p&gt;Basically grow//shrink cluster.&lt;/p&gt;</comment>
                            <comment id="49547" author="kalaiselvi_k@dell.com" created="Tue, 15 Sep 2015 08:08:38 +0000"  >&lt;p&gt;Attachment &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-934&quot; title=&quot;Clustering : Programmatic Cluster configuration&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-934&quot;&gt;&lt;del&gt;CONTROLLER-934&lt;/del&gt;&lt;/a&gt;_design.docx has been added with description: Design approach for dynamic addition/removal of controller nodes&lt;/p&gt;</comment>
                            <comment id="49543" author="colin@colindixon.com" created="Tue, 15 Sep 2015 15:21:18 +0000"  >&lt;p&gt;If this involves change the membership of a given shard, that is going to be a very complex change which requires, among other things, storing the membership information and it&apos;s modifications as part of the shards themselves.&lt;/p&gt;</comment>
                            <comment id="49544" author="muthukumaran.k@ericsson.com" created="Wed, 16 Sep 2015 10:14:41 +0000"  >&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; Memebr addition&lt;br/&gt;
&amp;gt;&amp;gt;&amp;gt;The leader for each shard replicates it data to the shard replica member created in the new node.&lt;/p&gt;

&lt;p&gt;Comment : When we have a large shard to be replicated, the node would be unusable - right ? Ie. when above replication process takes longer time, the new node would not be able to participate in any in-flight or incoming transactions - is my understanding right ? I understand that this is not specific to dynamic addition. Bu it can become more prominent when new &quot;empty&quot; node is added to a shard&lt;/p&gt;


&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; The listeners in the cluster group controller nodes listening for changes in the &#8216;shards&#8217; list informs ShardManager to add shard replicas for its set of local shards&lt;/p&gt;

&lt;p&gt;Comment : Since updating ShardManager is a node-local action, it would not be a problem if we use clustered datatree change listeners. It must just be ensured that above listener does not perform any clusterwide-operation again with any other shards CDS operations because they would be executed more than once which may not be desirable&lt;/p&gt;

&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; Dynamic removal of controller node from cluster&lt;/p&gt;

&lt;p&gt;Comment : &lt;br/&gt;
a) When a node is removed, do we honor the replication criterion of the shard-definition or not ? Eg. Shard S1 is configured with 3 replicas on members M1, M2 and M3. Now we bring down M3. Now, if we examine the &quot;shard-status&quot;  via RESTCONF &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/help_16.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;, we would see only M1 and M2 as members of S1 - right ? &lt;/p&gt;

&lt;p&gt;b) We might have to &quot;warn&quot;/&quot;fail&quot; &quot;administrator&quot; action when an attempt is made to remove all members of a shard.&lt;/p&gt;

&lt;p&gt;One possible solution to (b):&lt;br/&gt;
We can define something called &quot;min-live-shard-members&quot; parameter and keep that as, say, 2 and when there is a removal attempt when only 2 members of shard are present, we can fail the removal-request with error-message.&lt;/p&gt;

&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; JMX mbean API will be exposed to allow dynamic removal of a controller node from the cluster group&lt;/p&gt;

&lt;p&gt;Comment : Since the model is very much available via RESTCONF for modifications, would it not be sufficient to just use that or RPC (as indicated by Tom) instead of JMX  ?&lt;/p&gt;

&lt;p&gt;Would it be better if we have a FSM which depicts various states through which a new node transitions before it becomes available for transactions ?&lt;/p&gt;</comment>
                            <comment id="49545" author="tpantelis" created="Tue, 20 Oct 2015 20:37:14 +0000"  >&lt;p&gt;Initial patches:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/28018/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/28018/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/27742/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/27742/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/28596/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/28596/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="49546" author="moraja@cisco.com" created="Tue, 10 Nov 2015 17:41:30 +0000"  >&lt;p&gt;&lt;a href=&quot;https://gist.github.com/moizr/9401c6c7f427ec4bbff4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/moizr/9401c6c7f427ec4bbff4&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13447" name="Bug 2187_design.docx" size="24136" author="kalaiselvi_k@dell.com" created="Tue, 15 Sep 2015 08:08:38 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2187</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=2187]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10308"><![CDATA[New Feature]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10317"><![CDATA[Beryllium]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02ngn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>