<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:41 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-1492] Milestone: Cluster-wide service management</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1492</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Our current deployment model assumes symmetric clusters, where all services are activated on all nodes and application developers have to deal with deciding which service is actually alive especially in the (common) scenario, where centralized data processing is required.&lt;/p&gt;

&lt;p&gt;A typical example is OpenFlow Topology Manager, which needs to talk to all OF switches connected to a cluster and make sense of how they are connected. Such a service typically needs only a failover capability, e.g. ensuring the service runs in the cluster (or its surviving partition).&lt;/p&gt;

&lt;p&gt;Forcing all such applications to interact with EOS is an overkill, as they will end up producing essentially-equivalent code all over the ecosystem, with each copy having different issues (because reliable clustering is hard).&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26046">CONTROLLER-1492</key>
            <summary>Milestone: Cluster-wide service management</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</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="vdemcak@cisco.com">Vaclav Demcak</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Wed, 24 Feb 2016 17:23:42 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:07 +0000</updated>
                            <resolved>Mon, 25 Jul 2016 11:51:39 +0000</resolved>
                                                                    <component>clustering</component>
                        <due>Thu, 2 Jun 2016 00:00:00 +0000</due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="51341" author="vdemcak@cisco.com" created="Mon, 25 Apr 2016 08:56:16 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/37957&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/37957&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="51342" author="muthukumaran.k@ericsson.com" created="Wed, 4 May 2016 04:28:10 +0000"  >&lt;p&gt;I had following clarifications from the applications developer perspective&lt;/p&gt;

&lt;p&gt;1. If a clusterwide singleton app has a DataTreeChangeListener for a specific data-path and the app is located in a non-shard leader node, how DTCNs (DataTreeChangeNotification) would be delivered ? Or is it mandatory that singleton apps are recommended to use ClusteredDataTreeChangeListener in official 3-node cluster configuration ?&lt;/p&gt;

&lt;p&gt;2. Since apps can &quot;move&quot; around in cluster (to ensure one instance is incarnated in new node when erstwhile residential node of app goes down), it would become imperative that the apps must not store any &quot;local&quot; state of its own. One exclusion could be the case rebuilding state from datastore (but (1) above must be taken care of). Of course, this cannot be enforced by framework. But this must be a recommendation for app developers using this service. &lt;/p&gt;

&lt;p&gt;3. In principle, can singletons expose service RPCs which can be &quot;remotely&quot; accessed from other nodes ? This pattern could pose scale challenges. But, would this support be there at all ?&lt;/p&gt;</comment>
                            <comment id="51346" author="vdemcak@cisco.com" created="Tue, 28 Jun 2016 15:52:47 +0000"  >&lt;p&gt;Attachment Cluster-wideServiceMng.pdf has been added with description: adoc in pdf (adoc is a part of commit)&lt;/p&gt;</comment>
                            <comment id="51343" author="vdemcak@cisco.com" created="Thu, 30 Jun 2016 11:42:01 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/40858/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/40858/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/40859/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/40859/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/37957/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/37957/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="51344" author="vdemcak@cisco.com" created="Fri, 1 Jul 2016 09:16:23 +0000"  >&lt;p&gt;(In reply to Muthukumaran Kothandaraman from comment #2)&lt;br/&gt;
&amp;gt; I had following clarifications from the applications developer perspective&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 1. If a clusterwide singleton app has a DataTreeChangeListener for a&lt;br/&gt;
&amp;gt; specific data-path and the app is located in a non-shard leader node, how&lt;br/&gt;
&amp;gt; DTCNs (DataTreeChangeNotification) would be delivered ? Or is it mandatory&lt;br/&gt;
&amp;gt; that singleton apps are recommended to use ClusteredDataTreeChangeListener&lt;br/&gt;
&amp;gt; in official 3-node cluster configuration ?&lt;br/&gt;
Yes, ClusteredDataTreeChangeListener is recommended to use with ClusterSingletonServiceProvider for apps.&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 2. Since apps can &quot;move&quot; around in cluster (to ensure one instance is&lt;br/&gt;
&amp;gt; incarnated in new node when erstwhile residential node of app goes down), it&lt;br/&gt;
&amp;gt; would become imperative that the apps must not store any &quot;local&quot; state of&lt;br/&gt;
&amp;gt; its own. One exclusion could be the case rebuilding state from datastore&lt;br/&gt;
&amp;gt; (but (1) above must be taken care of). Of course, this cannot be enforced by&lt;br/&gt;
&amp;gt; framework. But this must be a recommendation for app developers using this&lt;br/&gt;
&amp;gt; service. &lt;br/&gt;
I&apos;m not sure what scenario you are talking about. Local state is app&apos;s problem. We can talk about Distributed state only. Lost cluster node connection in cluster is a base scenario which could bring more lights to your mind.&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 3. In principle, can singletons expose service RPCs which can be &quot;remotely&quot;&lt;br/&gt;
&amp;gt; accessed from other nodes ? This pattern could pose scale challenges. But,&lt;br/&gt;
&amp;gt; would this support be there at all ?&lt;br/&gt;
Please look at org.opendaylight.controller.sal.binding.api.RpcProviderRegistry#addRoutedRpcImplementation API contract.&lt;/p&gt;</comment>
                            <comment id="51345" author="muthukumaran.k@ericsson.com" created="Tue, 12 Jul 2016 15:55:54 +0000"  >&lt;p&gt;(In reply to Vaclav Demcak from comment #5)&lt;br/&gt;
&amp;gt; (In reply to Muthukumaran Kothandaraman from comment #2)&lt;br/&gt;
&amp;gt; &amp;gt; I had following clarifications from the applications developer perspective&lt;br/&gt;
&amp;gt; &amp;gt; &lt;br/&gt;
&amp;gt; &amp;gt; 1. If a clusterwide singleton app has a DataTreeChangeListener for a&lt;br/&gt;
&amp;gt; &amp;gt; specific data-path and the app is located in a non-shard leader node, how&lt;br/&gt;
&amp;gt; &amp;gt; DTCNs (DataTreeChangeNotification) would be delivered ? Or is it mandatory&lt;br/&gt;
&amp;gt; &amp;gt; that singleton apps are recommended to use ClusteredDataTreeChangeListener&lt;br/&gt;
&amp;gt; &amp;gt; in official 3-node cluster configuration ?&lt;br/&gt;
&amp;gt; Yes, ClusteredDataTreeChangeListener is recommended to use with&lt;br/&gt;
&amp;gt; ClusterSingletonServiceProvider for apps.&lt;br/&gt;
&amp;gt; &amp;gt; &lt;br/&gt;
&amp;gt; &amp;gt; 2. Since apps can &quot;move&quot; around in cluster (to ensure one instance is&lt;br/&gt;
&amp;gt; &amp;gt; incarnated in new node when erstwhile residential node of app goes down), it&lt;br/&gt;
&amp;gt; &amp;gt; would become imperative that the apps must not store any &quot;local&quot; state of&lt;br/&gt;
&amp;gt; &amp;gt; its own. One exclusion could be the case rebuilding state from datastore&lt;br/&gt;
&amp;gt; &amp;gt; (but (1) above must be taken care of). Of course, this cannot be enforced by&lt;br/&gt;
&amp;gt; &amp;gt; framework. But this must be a recommendation for app developers using this&lt;br/&gt;
&amp;gt; &amp;gt; service. &lt;br/&gt;
&amp;gt; I&apos;m not sure what scenario you are talking about. Local state is app&apos;s&lt;br/&gt;
&amp;gt; problem. We can talk about Distributed state only. Lost cluster node&lt;br/&gt;
&amp;gt; connection in cluster is a base scenario which could bring more lights to&lt;br/&gt;
&amp;gt; your mind.&lt;br/&gt;
&amp;gt; &amp;gt; &lt;br/&gt;
&amp;gt; &amp;gt; 3. In principle, can singletons expose service RPCs which can be &quot;remotely&quot;&lt;br/&gt;
&amp;gt; &amp;gt; accessed from other nodes ? This pattern could pose scale challenges. But,&lt;br/&gt;
&amp;gt; &amp;gt; would this support be there at all ?&lt;br/&gt;
&amp;gt; Please look at&lt;br/&gt;
&amp;gt; org.opendaylight.controller.sal.binding.api.&lt;br/&gt;
&amp;gt; RpcProviderRegistry#addRoutedRpcImplementation API contract.&lt;/p&gt;


&lt;p&gt;Hi Vaclav, &lt;/p&gt;

&lt;p&gt;Regarding point (3), what would be the route-key in case of clusterwide singletons ?&lt;/p&gt;

&lt;p&gt;Regards&lt;br/&gt;
Muthu&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="23669">BGPCEP-429</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="27927">OPNFLWPLUG-659</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="27993">OPNFLWPLUG-725</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="26042">CONTROLLER-1488</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="13575" name="Cluster-wideServiceMng.pdf" size="617825" author="vdemcak@cisco.com" created="Tue, 28 Jun 2016 15:52:47 +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>5421</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=5421]]></customfieldvalue>

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

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

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