<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:43 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-1898] Improve NormalizedNodeData{Input,Output} QName coding</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1898</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;After addressing &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1897&quot; title=&quot;Improve QNameFactory performance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1897&quot;&gt;&lt;del&gt;CONTROLLER-1897&lt;/del&gt;&lt;/a&gt;, overall performance improved by about 18%, but the subsequent profiling is showing readQName() still accounting for 46% of CPU time spent.&lt;/p&gt;

&lt;p&gt;There are two components to this cost:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;30% is spent in readCodedString()&lt;/li&gt;
	&lt;li&gt;61% is spent in QNameFactory.create()&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The sample (a 350MiB snapshot) invokes readQName() 1.7M times, with the overall result being 506 unique QNames &#8211; hence QNames are obviously a good candidate for the same coding we are using for Strings.&lt;/p&gt;

&lt;p&gt;Implementing such coding will allow us:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;trim snapshot, as already-encoded QNames will result in one-third of reads, i.e. 1 read of 5 bytes instead of 3&lt;/li&gt;
	&lt;li&gt;eliminate most of the QNameFactory.create() overhead, as repetitive QNames will be looked up in a local List instead of hash-based concurrent LoadingCache&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Finally, this also enables us to cache NodeIdentifier instances, as NodeIdentifier is only a wrapper around a QName. Adding a secondary lookup table for caching these wrappers should allow us to lower the memory footprint of the deserialized data.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="31715">CONTROLLER-1898</key>
            <summary>Improve NormalizedNodeData{Input,Output} QName coding</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="rovarga">Robert Varga</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Tue, 28 May 2019 15:20:02 +0000</created>
                <updated>Mon, 1 Jul 2019 10:44:53 +0000</updated>
                            <resolved>Mon, 1 Jul 2019 10:44:53 +0000</resolved>
                                                    <fixVersion>Sodium</fixVersion>
                    <fixVersion>Neon SR2</fixVersion>
                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="31714">CONTROLLER-1897</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="31558">CONTROLLER-1888</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|i03o0f:</customfieldvalue>

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