<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:23:49 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>[NETVIRT-1339] Convert elanmanager to datastore-constrained transactions</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-1339</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description></description>
                <environment></environment>
        <key id="30197">NETVIRT-1339</key>
            <summary>Convert elanmanager to datastore-constrained transactions</summary>
                <type id="10102" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10316&amp;avatarType=issuetype">Sub-task</type>
                            <parent id="30154">NETVIRT-1318</parent>
                                    <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <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="eceghkl">Manu B</assignee>
                                    <reporter username="skitt">Stephen Kitt</reporter>
                        <labels>
                    </labels>
                <created>Mon, 25 Jun 2018 16:00:00 +0000</created>
                <updated>Wed, 3 Oct 2018 19:38:26 +0000</updated>
                            <resolved>Wed, 3 Oct 2018 19:38:26 +0000</resolved>
                                                    <fixVersion>Fluorine-SR1</fixVersion>
                    <fixVersion>Neon</fixVersion>
                                    <component>elanmanager</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="63841" author="thapar" created="Mon, 2 Jul 2018 07:07:21 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ezghodh&quot; class=&quot;user-hover&quot; rel=&quot;ezghodh&quot;&gt;ezghodh&lt;/a&gt; If you&apos;re not actively working on this please unassign yourself so someone else can work on this.&lt;/p&gt;</comment>
                            <comment id="63897" author="eceghkl" created="Wed, 4 Jul 2018 08:44:00 +0000"  >&lt;p&gt;Review added doesn&apos;t use DS constraint txn at all the places. It is difficult to add where same transaction is used for both config and oper. Similarly it is difficult to use for places where blocking calls are used.&lt;/p&gt;</comment>
                            <comment id="63898" author="skitt@redhat.com" created="Wed, 4 Jul 2018 09:03:00 +0000"  >&lt;p&gt;Could you give an example where blocking calls make it difficult to use?&lt;/p&gt;</comment>
                            <comment id="63903" author="eceghkl" created="Wed, 4 Jul 2018 10:26:27 +0000"  >&lt;p&gt;For eg: deleteElanInterfaceForwardingTablesList in&#160;ElanForwardingEntriesHandler.java is called from 2 places( one from deleteElanInterfaceForwardingEntries and updateElanInterfaceForwardingTablesList from same file).&#160; It is easy to move to DS constraint tx in deleteElanInterfaceForwardingEntries&#160; but difficult at updateElanInterfaceForwardingTablesList. This is because updateElanInterfaceForwardingTablesList is called from update method of ElanInterfaceManager.java which doesn&apos;t use txRunner(due to blocked call).&lt;/p&gt;

&lt;p&gt;This resulted in not using DS constraint txn in both deleteElanInterfaceForwardingEntries and updateElanInterfaceForwardingTablesList.&lt;/p&gt;

&lt;p&gt;Please let me know if there is any better way to use it.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="63905" author="skitt@redhat.com" created="Wed, 4 Jul 2018 12:31:10 +0000"  >&lt;p&gt;The better way is to use an existing transaction in `ElanInterfaceManager::update`, without blocking. (Blocking shouldn&#8217;t be necessary if all the dependencies are in the same transaction.)&lt;/p&gt;</comment>
                            <comment id="63917" author="eceghkl" created="Thu, 5 Jul 2018 11:33:50 +0000"  >&lt;p&gt;Do we need to take up removal of blocking calls in the current activity? It could have impact in the functionalities. There are 5 usage of ElanUtils::waitForTransactionToComplete.(blocking calls) &lt;br/&gt;
Some are related to data dependencies and there are already work going on txn chaining those areas. Other usages seems to be added for race conditions.&lt;/p&gt;

&lt;p&gt;Please let me know your views. &lt;/p&gt;</comment>
                            <comment id="63918" author="skitt@redhat.com" created="Thu, 5 Jul 2018 11:57:22 +0000"  >&lt;p&gt;As always, if it makes the patch unwieldy, it&#8217;s fine to split the patch up. Especially if work is being done in other patches to address these issues, it makes sense to push an initial patch converting what can easily be converted, and then follow up with another patch once the other patches have been merged. (But this bug shouldn&#8217;t be marked as &#8220;done&#8221; until everything is done.)&lt;/p&gt;

&lt;p&gt;Note that converting code to use a single transaction which is passed down avoids a number of these issues: changes made in a transaction are visible inside that transaction, which means some waits can be removed. There should also be fewer race conditions as a result of this work.&lt;/p&gt;</comment>
                            <comment id="64209" author="vorburger" created="Wed, 25 Jul 2018 13:42:49 +0000"  >&lt;p&gt;with &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/74026/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/74026/&lt;/a&gt;&#160;not yet, let&apos;s re-use this issue, for clear status.&lt;/p&gt;</comment>
                    </comments>
                    <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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03fyv:</customfieldvalue>

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