<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09: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>[MDSAL-443] Inline CodecDataObject&apos;s NodeContextSuppliers</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-443</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;The LazyDataObject-&amp;gt;CodecDataObject refactor allows us to improve the dispatch performance as we are no longer bound by InvocationHandler API. First part of this was already done in &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-442&quot; title=&quot;Teach binding-dom-codec to keep its proxies in a separate ClassLoader&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-442&quot;&gt;&lt;del&gt;MDSAL-442&lt;/del&gt;&lt;/a&gt;, where we are using simple integers to lookup NodeContextSupplier which handles decoding of NormalizedNode data &#8211; ditching a Map in favor of simple array.&lt;/p&gt;

&lt;p&gt;As it turns out, though, we can do a bit better here, as CodecDataObject only needs that lookup from DataObjectCodecContext. Since the offsets are fixed anyway, we may as well generate constant fields in the CodecDataObject overlay and pass them down to CodecDataObject proper, which will then just use the constant.&lt;/p&gt;

&lt;p&gt;This will eliminate all lookups from the hot path and use easily propagated constants instead. It will also save one field in CodecDataObject, as it will no longer require a reference to DataObjectCodecContext.&lt;/p&gt;</description>
                <environment></environment>
        <key id="31630">MDSAL-443</key>
            <summary>Inline CodecDataObject&apos;s NodeContextSuppliers</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="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="rovarga">Robert Varga</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Tue, 23 Apr 2019 08:02:39 +0000</created>
                <updated>Tue, 9 Jan 2024 09:06:20 +0000</updated>
                                                            <fixVersion>14.0.0</fixVersion>
                                    <component>Binding runtime</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="66729" author="rovarga" created="Tue, 23 Apr 2019 08:24:52 +0000"  >&lt;p&gt;The disconnect of CodecDataObject is not complete, as we still need the DataObjectCodecContext reference for AugmentableCodecDataObject mechanics. In order to eliminate that dependency will need &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-392&quot; title=&quot;Clean up BindingRuntimeContext instantiation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-392&quot;&gt;&lt;del&gt;MDSAL-392&lt;/del&gt;&lt;/a&gt;, i.e. full visibility into all possible augmentations and their ClassLoaders. This issue will deal only with normal fields and the key() method.&lt;/p&gt;</comment>
                            <comment id="66738" author="rovarga" created="Wed, 1 May 2019 21:49:23 +0000"  >&lt;p&gt;This optimization is not valid, as it breaks the ability to transport groupings: if a grouping is used somewhere we need to rehost the NodeContextSupplier.&lt;/p&gt;

&lt;p&gt;Hence we need to dial this optimization down, so that we understand whether a node is defined within the context of a grouping &#8211; in which case we need to fall back to name-based lookups. If a node is defined outside of a grouping, i.e. it cannot be reused, we are free to perform this optimization.&lt;/p&gt;

&lt;p&gt;This will require some amount of refactoring to have DataObjectCodecContext the appropriate hooks to support such duality of operation.&lt;/p&gt;</comment>
                            <comment id="69310" author="rovarga" created="Wed, 16 Jun 2021 09:17:41 +0000"  >&lt;p&gt;We have everything we need in CodecDataObjectGenerator.Fixed, but we also need instantiation information from &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-669&quot; title=&quot;Retain grouping/uses instantiation vectors&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-669&quot;&gt;&lt;del&gt;MDSAL-669&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="31635">MDSAL-444</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="31622">MDSAL-442</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="34113">MDSAL-669</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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03njb:</customfieldvalue>

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