<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:56:29 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-1554] Add option to track InMemoryDataTree modification metadata</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1554</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;RESTCONF suggests implementations should track Last-Modified and ETag headers for every resource.&lt;/p&gt;

&lt;p&gt;InMemoryDataTree is our reference implementation underlying DOMDataStore, which is what RESTCONF talks to. Unfortunately it lacks the ability to track metadata about modifications.&lt;/p&gt;

&lt;p&gt;What we would really like is to track:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;ETag as an UUID, which provides reasonable odds against collisions at the cost of 128bits (16 bytes)&lt;/li&gt;
	&lt;li&gt;Last-Modified as an Instant, which is the most accurate point in time representation, costing 96 bites (12 bytes)&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;It is not feasible to tract these two as separate objects, due to object header overheads (which are comparable to each object&apos;s significant content. We therefore should have an interface hierarchy combining  supporting the 4 combinations which can result in terms of support, Worst case scenario devolves to&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
record LastModifiedETag(
  &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; instantSeconds,
  &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; instantNanos,
  &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; uuidLow,
  &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; uuidHigh) {
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Furthermore we should not track this for every data tree node, but rather provide a way to look up LastModifiedETag from a commited Version object. Since each node has a Version, that should work out just fine.&lt;/p&gt;</description>
                <environment></environment>
        <key id="37724">YANGTOOLS-1554</key>
            <summary>Add option to track InMemoryDataTree modification metadata</summary>
                <type id="10103" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10311&amp;avatarType=issuetype">New Feature</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>
                    </labels>
                <created>Thu, 7 Dec 2023 22:31:13 +0000</created>
                <updated>Fri, 5 Jan 2024 14:51:33 +0000</updated>
                                                            <fixVersion>14.0.0</fixVersion>
                                    <component>data-impl</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</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|i0470f:</customfieldvalue>

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