<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:51 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-1952] Specialize TransactionContextWrapper</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1952</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;TransactionContextWrapper is an internal indirection used by TransactionProxy in ask-based protocol implementation. It handles the eventual completion of shard lookup, without blocking operation allocation. This has a non-trivial price in that each wrapper has a queue, plus each operation has to check whether the context is resolved and potentially replay the queue.&lt;/p&gt;

&lt;p&gt;While this need is unfortunate &amp;#8211; and would be better served through proper sharding, &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-427&quot; title=&quot;Make DataBroker resource allocation asynchronous&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-427&quot;&gt;MDSAL-427&lt;/a&gt;, or tell-based protocols reconnect logic &#8211; we should be able to improve on the situation at least for the local-leader case.&lt;/p&gt;

&lt;p&gt;The way the code is currently structured:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;we allocate TransactionContextWrapper, which has no side-effects&lt;/li&gt;
	&lt;li&gt;we kick off ShardInfo resolution, obtaining a Future&lt;/li&gt;
	&lt;li&gt;check if the Future has completed, shortcutting completion codepath&lt;/li&gt;
	&lt;li&gt;return the wrapper&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;While this works and shares codepaths, we should be able to do better if we realize that the context is not visible to user if we are taking the shortcut at 3, and if maybeCreateLocalTransactionContext() returns a valid local context have everything ready to completely bypass the &apos;no TransactionContext&apos; case. This same is true if we end up with an immediate failure.&lt;/p&gt;

&lt;p&gt;We should therefore be able to specialize TransactionContextWrapper so that we have a simple no-queuing implementation for those immediately-satisfied cases, as operation queueing in those cases is a lot more direct and less memory-hungry.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="32805">CONTROLLER-1952</key>
            <summary>Specialize TransactionContextWrapper</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <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="TadeyBilan">Tadey Bilan</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Thu, 25 Jun 2020 21:29:28 +0000</created>
                <updated>Tue, 21 Sep 2021 19:51:36 +0000</updated>
                            <resolved>Tue, 21 Sep 2021 19:51:36 +0000</resolved>
                                                    <fixVersion>4.0.4</fixVersion>
                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                        <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|i03tbj:</customfieldvalue>

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