<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:54:36 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-1063] Clustering : Add support to allow reads from followers</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1063</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;The Clustered Data Store ensures that all reads are consistent by routing reads to the Shard Leader. This obviously has an adverse impact on application performance. We need to provide a mechanism in the API or via configuration so that application developers and/or administrators can choose to allow reads from a follower. &lt;/p&gt;

&lt;p&gt;It goes without saying that applications that choose to use this mechanism will have to deal with the situation where a ReadTransaction following a WriteTransaction may not see the data written by the WriteTransaction.&lt;/p&gt;

&lt;p&gt;Also the support to read from a follower cannot be implemented when transactions occur on a TransactionChain.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25617">CONTROLLER-1063</key>
            <summary>Clustering : Add support to allow reads from followers</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                                <status id="10003" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Confirmed</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="moraja@cisco.com">Moiz Raja</reporter>
                        <labels>
                    </labels>
                <created>Thu, 11 Dec 2014 16:29:23 +0000</created>
                <updated>Tue, 25 Jul 2023 08:23:50 +0000</updated>
                                                                            <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="49920" author="moraja@cisco.com" created="Tue, 25 Aug 2015 15:13:49 +0000"  >&lt;p&gt;No clear use case so moving it out of Be&lt;/p&gt;</comment>
                            <comment id="49921" author="moraja@cisco.com" created="Tue, 17 Nov 2015 20:04:57 +0000"  >&lt;p&gt;There is a way to currently do this - it&apos;s a bit convoluted but it would work.&lt;/p&gt;

&lt;p&gt;The way is to register a DataChangeListener. The Listener should be of type ClusteredDataChangeListener. When the Listener is registered it sends an initial notification with all the pertinent data from the local replica. After the initial notification is received the data can be read from the CreatedData map and the listener can be unregistered. This effectively gives us a mechanism to read data from the follower.&lt;/p&gt;</comment>
                            <comment id="49922" author="rovarga" created="Thu, 26 May 2016 12:45:02 +0000"  >&lt;p&gt;An alternative is to provide an interface extension in the DOMDataTreeProducer (or consumer) contract, which will backchannel the request. Frontend implementation can then satisfy the read either from its replica (if present), or by establishing an internal consumer, or via explicit read.&lt;/p&gt;</comment>
                            <comment id="49923" author="ravit.peretz@hpe.com" created="Thu, 5 Jan 2017 12:01:56 +0000"  >&lt;p&gt;please see below mail threads for more info on proposed implementation:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://lists.opendaylight.org/pipermail/mdsal-dev/2016-December/000881.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/mdsal-dev/2016-December/000881.html&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://lists.opendaylight.org/pipermail/mdsal-dev/2016-December/000859.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/mdsal-dev/2016-December/000859.html&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://lists.opendaylight.org/pipermail/mdsal-dev/2016-December/000853.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/mdsal-dev/2016-December/000853.html&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="49924" author="rovarga" created="Thu, 5 Jan 2017 14:25:44 +0000"  >&lt;p&gt;I think there is a semantic mismatch between this issue and the request discussed in the referenced thread.&lt;/p&gt;

&lt;p&gt;The assumption in this issue is that the follower is located on the current node and if not, the read will go to the master.&lt;/p&gt;

&lt;p&gt;The discussion in the mailing thread is about a cache, which is initially populated from wherever and is being maintained going forward.&lt;/p&gt;

&lt;p&gt;The difference is that this issue makes an assumption on follower locality, while the cache does not. This is an important distinction in clusters where there is no shard presence (leader/follower) on some nodes.&lt;/p&gt;</comment>
                            <comment id="49925" author="vorburger" created="Mon, 9 Jan 2017 11:59:10 +0000"  >&lt;p&gt;&amp;gt; mismatch between this issue and the request discussed in the referenced thread&lt;/p&gt;

&lt;p&gt;==&amp;gt; &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-217&quot; title=&quot;Cache support API to improve clustered data reads performance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-217&quot;&gt;&lt;del&gt;MDSAL-217&lt;/del&gt;&lt;/a&gt; opened (by Ravit)&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="25472">CONTROLLER-918</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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>2504</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=2504]]></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="10349"><![CDATA[Unspecified]]></customfieldvalue>

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

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