<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:55:05 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>[YANGTOOLS-1067] Use flyweight EffectiveStatement implementations</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1067</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;Most EffectiveStatement subtrees are inlined via grouping/uses mechanics, which we gain control of via &lt;a href=&quot;https://jira.opendaylight.org/browse/YANGTOOLS-694&quot; title=&quot;Eliminate duplicate DescriptionEffectiveStatementImpl objects&quot; class=&quot;issue-link&quot; data-issue-key=&quot;YANGTOOLS-694&quot;&gt;&lt;del&gt;YANGTOOLS-694&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Since most effective statements have a SchemaPath, their state depends on it and thus we cannot reasonably share state &#8211; this property cascades to parent substatement list &#8211; hence we can share very little.&lt;/p&gt;

&lt;p&gt;Once we get rid of SchemaPath, though, each effective statement&apos;s state is (mostly?) dominated by its QName (which dictates substatements&apos; QNames, etc.), hence we can deploy a very efficient flyweight pattern, where we maintain a QNameModule -&amp;gt; template cache and aggressively reuse effective statements.&lt;/p&gt;</description>
                <environment></environment>
        <key id="32327">YANGTOOLS-1067</key>
            <summary>Use flyweight EffectiveStatement implementations</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>Sat, 11 Jan 2020 23:11:45 +0000</created>
                <updated>Sat, 4 Dec 2021 14:11:30 +0000</updated>
                            <resolved>Sat, 4 Dec 2021 14:11:30 +0000</resolved>
                                                    <fixVersion>8.0.0</fixVersion>
                                    <component>parser</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                                                            <comments>
                            <comment id="67663" author="rovarga" created="Tue, 14 Jan 2020 13:48:19 +0000"  >&lt;p&gt;Note that CopyHistory and parent&apos;s &apos;isConfiguration&apos; are also contributing to that state (but we should get that at buildEffective() time from &lt;a href=&quot;https://jira.opendaylight.org/browse/YANGTOOLS-694&quot; title=&quot;Eliminate duplicate DescriptionEffectiveStatementImpl objects&quot; class=&quot;issue-link&quot; data-issue-key=&quot;YANGTOOLS-694&quot;&gt;&lt;del&gt;YANGTOOLS-694&lt;/del&gt;&lt;/a&gt;). The overall matrix of possible states is nevertheless quite small and amenable to caching.&lt;/p&gt;</comment>
                            <comment id="68785" author="rovarga" created="Thu, 3 Dec 2020 18:16:15 +0000"  >&lt;p&gt;The primary goal here is to eliminate duplicate lists (note Object[] is used by RegularImmutableList, too)&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.opendaylight.org/secure/attachment/15911/15911_image-2020-12-03-19-16-01-224.png&quot; height=&quot;749&quot; width=&quot;1347&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;</comment>
                            <comment id="68786" author="rovarga" created="Thu, 3 Dec 2020 18:17:42 +0000"  >&lt;p&gt;These typically consist of CopyPolicy.CONTEXT_INDEPENDENT:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.opendaylight.org/secure/attachment/15912/15912_image-2020-12-03-19-16-57-891.png&quot; height=&quot;626&quot; width=&quot;1444&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;hence the list should be readily shared&lt;/p&gt;</comment>
                            <comment id="68964" author="rovarga" created="Fri, 12 Feb 2021 10:30:34 +0000"  >&lt;p&gt;Unfortunately the current mode of operation causes a significant CPU regression without any real benefit. This will need to be revisited.&lt;/p&gt;</comment>
                            <comment id="69543" author="rovarga" created="Thu, 2 Sep 2021 14:47:33 +0000"  >&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.opendaylight.org/secure/attachment/16504/16504_junos_yt800_dups.png&quot; height=&quot;687&quot; width=&quot;1257&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;with SchemaPath out of the picture, the situation is much better, but there is obviously still room for improvement.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="23114">YANGTOOLS-694</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="32326">YANGTOOLS-1066</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="33741">YANGTOOLS-1209</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="15911" name="image-2020-12-03-19-16-01-224.png" size="453791" author="rovarga" created="Thu, 3 Dec 2020 18:16:03 +0000"/>
                            <attachment id="15912" name="image-2020-12-03-19-16-57-891.png" size="288749" author="rovarga" created="Thu, 3 Dec 2020 18:16:59 +0000"/>
                            <attachment id="16504" name="junos_yt800_dups.png" size="406406" author="rovarga" created="Thu, 2 Sep 2021 14:43:51 +0000"/>
                    </attachments>
                <subtasks>
                            <subtask id="33755">YANGTOOLS-1212</subtask>
                            <subtask id="33756">YANGTOOLS-1213</subtask>
                            <subtask id="33757">YANGTOOLS-1214</subtask>
                    </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_10002" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>YANGTOOLS-652</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03qqn:</customfieldvalue>

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