<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:54:12 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-916] Clustering : Provide a mechanism for consumers to specify how they would like to receive notifications in a cluster</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-916</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;When an application is deployed on every node in a cluster it may have different requirements as to which instance of the application should receive the notification. In Helium the default was to deliver the notification to a local listener.&lt;/p&gt;

&lt;p&gt;The enhancement that is needed is to do the following types of notifications,&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;NotifyAll&lt;/li&gt;
	&lt;li&gt;NotifyLocal&lt;/li&gt;
	&lt;li&gt;NotifyAtleastOne&lt;/li&gt;
	&lt;li&gt;NotifyAtMostOne&lt;/li&gt;
	&lt;li&gt;And anything else I cannot think of today&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;A rough consensus on design is that this could be achieved by creating a subclass per listener where the listener provides additional information about how the notification should happen. This subclassed listener should be available on both the Binding Aware and Binding Independent interfaces of MD-SAL and should be available for both YANG and DataChange notifications.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25470">CONTROLLER-916</key>
            <summary>Clustering : Provide a mechanism for consumers to specify how they would like to receive notifications in a cluster</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="-1">Unassigned</assignee>
                                    <reporter username="moraja@cisco.com">Moiz Raja</reporter>
                        <labels>
                    </labels>
                <created>Thu, 2 Oct 2014 20:57:43 +0000</created>
                <updated>Thu, 19 Oct 2017 21:26:43 +0000</updated>
                            <resolved>Thu, 4 Feb 2016 13:48:27 +0000</resolved>
                                    <version>Helium</version>
                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="49478" author="jameshall03885@gmail.com" created="Thu, 22 Jan 2015 14:29:30 +0000"  >&lt;p&gt;I&#8217;d like to promote the simplest system (programming model) possible with respect to clustering, as even a simple clustering system is complex for mere mortals.  Anyone product managing ODL will tell you that if you want lots of user of your system, and you do!, it&#8217;s gotta be consumable by mere mortals.&lt;/p&gt;

&lt;p&gt;I would ask why it seems necessary to use notifications to replicate stats to an external database instead of treating the external database as a cluster itself using it&#8217;s own replication.  You don&#8217;t want a near-realtime system bogged down with historical workloads.  Let the NotifiyOne be the only mechanism in the near-realtime system, ( I think we have our hands fully just getting this to work in all cluster failure/recovery modes ), and pump those stats to an external historical repository which can keep itself simple for it&#8217;s own purposes.&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;J. Greg Hall&lt;/p&gt;</comment>
                            <comment id="49479" author="mlemay@inocybe.ca" created="Thu, 22 Jan 2015 14:36:49 +0000"  >&lt;p&gt;Moiz I completely agree, however would it make sense to first divide the clustering zones. What I mean by that is in most deployments I&apos;ve been planning that includes clustering a requirement is for things to propagate both at a group-level and others at a zone level. This affects how things are sharded but also would affect the notification radius. For example, when using a set of OF switches in a clustered controller environment many will want to have X instances managing a specific group of switch and applications but will still want to make sure they can get the global views / behaviors from a logically centralized controller. &lt;/p&gt;

&lt;p&gt;I know this is a bit out of scope for this discussion but I see a relationship between notifications, ActorRefs and notification. I think what you suggested is a good first step for the notifs but what I am getting to is that there is a need for a nuance between local and &quot;global world&quot; that is required as well..&lt;/p&gt;</comment>
                            <comment id="49480" author="rovarga" created="Thu, 22 Jan 2015 17:19:43 +0000"  >&lt;p&gt;This looks like the notification publisher specifies the notification scope. I do not believe that is correct, as it implies the publisher knows where the consumers are.&lt;/p&gt;

&lt;p&gt;I would propose to go the other way around, where the subscribers specify the distance how far their subscription is effective: Local, Cluster, Global. The reason for this is, typically, that we tend to attach protocol conversion into SAL, which can also forward requests to subscribe.&lt;/p&gt;</comment>
                            <comment id="49481" author="rapenno@gmail.com" created="Thu, 29 Jan 2015 17:32:28 +0000"  >&lt;p&gt;Does this apply to DataChangeListeners as well? Meaning if a a provider writes to the datastore, will all listeners across all ODL clustered nodes get a OnDataChanged() callback?&lt;/p&gt;

&lt;p&gt;As background, in SFC we rely on having this behavior.&lt;/p&gt;</comment>
                            <comment id="49482" author="tpantelis" created="Thu, 4 Feb 2016 13:48:27 +0000"  >&lt;p&gt;A while back, we implemented data change notifications on every cluster node via a specific listener interface. Along with the EntityOwnershipService this has satisfied current requirements for cluster-aware consumers. We can create new bugs if further requirements/enhancements are needed in the future.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="25471">CONTROLLER-917</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </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>2139</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=2139]]></customfieldvalue>

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

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

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

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