<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:10:50 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-746] Improve BitsTypeObject storage</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-746</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;Separate from &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-743&quot; title=&quot;Add BitsTypeObject&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-743&quot;&gt;&lt;del&gt;MDSAL-743&lt;/del&gt;&lt;/a&gt;, which defines the headline term, let&apos;s improve how we storage the individual bits. With &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-744&quot; title=&quot;Map bits type to primitive boolean&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-744&quot;&gt;&lt;del&gt;MDSAL-744&lt;/del&gt;&lt;/a&gt; we promise to provide a boolean value. Most of the bits we encounter have a very limited number of possible bits, let&apos;s say there are three classes:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;up to 32 bits, which should use an &apos;int&apos; for storage&lt;/li&gt;
	&lt;li&gt;up to 64 bits, which should use a &apos;long&apos; for storage&lt;/li&gt;
	&lt;li&gt;more than 64 bits, which should use an int[] for storage]&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Specialize codegen to recognize these three classes and store the set bits in the appropriate storage class, providing the required methods on bit operations. This will drop storage requirements (when compared to &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-743&quot; title=&quot;Add BitsTypeObject&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-743&quot;&gt;&lt;del&gt;MDSAL-743&lt;/del&gt;&lt;/a&gt;) by additional factor of 8, providing a 32x/64x improvement when compared to current Boolean storage.&lt;/p&gt;</description>
                <environment></environment>
        <key id="35505">MDSAL-746</key>
            <summary>Improve BitsTypeObject storage</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>Mon, 11 Apr 2022 20:22:17 +0000</created>
                <updated>Tue, 9 Jan 2024 13:05:32 +0000</updated>
                                                            <fixVersion>14.0.0</fixVersion>
                                    <component>Binding codegen</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="70803" author="rovarga" created="Mon, 11 Apr 2022 20:30:58 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/browse/YANGTOOLS-1426&quot; title=&quot;Consider bits type storage&quot; class=&quot;issue-link&quot; data-issue-key=&quot;YANGTOOLS-1426&quot;&gt;YANGTOOLS-1426&lt;/a&gt; proposes to make similar improvements on yang.data.api level. While mdsal is free to its own thing (because &quot;codegen&quot;!) it would be nice if we could share some of the solution space.&lt;/p&gt;</comment>
                            <comment id="71610" author="rovarga" created="Thu, 10 Nov 2022 01:48:26 +0000"  >&lt;p&gt;So we are in a bit of a pickle w.r.t. serialization, I think.&lt;/p&gt;

&lt;p&gt;serialVersionUID is based on properties, but it really needs to reflect resulting class layout as well to be really accurate.&lt;/p&gt;

&lt;p&gt;The problem is that the current patch does &lt;b&gt;not&lt;/b&gt; change serial version, even when fields change from individual booleans to ints/whatever.&lt;/p&gt;

&lt;p&gt;I am not sure what to about this: I think serialVersionUID needs to capture both the properties and the resulting layout (hence mdsal-binding-generator needs to know about these).&lt;/p&gt;

&lt;p&gt;Lets punt this for the next release.&lt;/p&gt;</comment>
                            <comment id="71611" author="rovarga" created="Thu, 10 Nov 2022 01:52:18 +0000"  >&lt;p&gt;I think we should do this only after &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-764&quot; title=&quot;Refactor binding-model-api&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-764&quot;&gt;MDSAL-764&lt;/a&gt;, which will give us a proper structure for what kinds of things we want to generate. Once we have that, we will have a BitsTypeObjectArchetype, which can capture the layout vs. properties difference, thus communicating clearly what needs to be generated and how.&lt;/p&gt;

&lt;p&gt;On java-api-generator side this also implies creating a BitsTypeObjectTemplate and pulling bits-related special-cases there.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="35503">MDSAL-744</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="36104">MDSAL-764</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="35500">YANGTOOLS-1426</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_10002" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>MDSAL-742</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0423r:</customfieldvalue>

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