<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:14:56 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>[NETCONF-403] Eliminate blocking checks in loops, so the checks are done in parallel</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-403</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;Do not mix read and write operations in one loop. &lt;/p&gt;

&lt;p&gt;This change is needed for old restconf (BrokerFacade.java) and also for new restconf (RestconfDataServiceImpl and its utility helper classes).&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="21416">NETCONF-403</key>
            <summary>Eliminate blocking checks in loops, so the checks are done in parallel</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="vladyslav.marchenko">Vladyslav Marchenko</assignee>
                                    <reporter username="ivan.hrasko@pantheon.tech">Ivan Hrasko</reporter>
                        <labels>
                    </labels>
                <created>Fri, 21 Apr 2017 10:42:20 +0000</created>
                <updated>Tue, 23 Feb 2021 18:45:01 +0000</updated>
                            <resolved>Tue, 23 Feb 2021 18:45:01 +0000</resolved>
                                                    <fixVersion>1.13.0</fixVersion>
                                    <component>restconf-nb</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="40014" author="ivan.hrasko@pantheon.tech" created="Fri, 21 Apr 2017 10:54:09 +0000"  >&lt;p&gt;This is follow up issue of &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=7868&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=7868&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="68659" author="JIRAUSER12903" created="Wed, 7 Oct 2020 07:50:20 +0000"  >&lt;p&gt;Changes are made only for rfc4080!&lt;br/&gt;
According to RFC6241, we need to do &quot;if exists&quot; check for &quot;delete&quot; and &quot;create&quot;operations.&lt;br/&gt;
Currently we have two scenarios: &lt;br/&gt;
1) when device is connected and we execute operation on device&apos;s datastore (using NetconfRestconfStrategy.java)&lt;br/&gt;
2) execute operation on local  controller&apos;s datastore (using MdsalRestconfStrategy.java)&lt;/p&gt;

&lt;p&gt;If request goes via NetconfRestconfStrategy.java we don&apos;t need to check existence on the controller side. As implementation of &amp;lt;edit-config&amp;gt; with &quot;delete&quot;/&quot;create&quot;operations - first must do &quot;if exists&quot; check. As en example see org.opendaylight.netconf.mdsal.connector.ops.EditConfig.java&lt;/p&gt;

&lt;p&gt;If request goes via MdsalRestconfStrategy.java, first we need to do &quot;if exists&quot; check.&lt;br/&gt;
Read requests in this case, are collected in a batch and then collecting the results. (The same as was done in &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/netconf/+/55224&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/netconf/+/55224&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;For testing performance this script was used (with device simulator):&lt;br/&gt;
python cluster_rest_script.py --host localhost --port 8181 --threads 1 --itemcount 10000 --ipr 10000 --debug add&lt;/p&gt;

&lt;p&gt;Before this patch:&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Local datastore &lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Device&apos;s datastore &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ~ 98 sec &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &amp;gt; 600 sec (failed by timeout)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;


&lt;p&gt;After this patch:&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt; Local datastore &lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Device&apos;s datastore &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ~ 1,5 sec &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ~ 15 sec &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;


</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="21418">NETCONF-405</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="33569">NETCONF-743</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>8268</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=8268]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10305"><![CDATA[Improvement]]></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|i01ybr:</customfieldvalue>

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