<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:44 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-1511] CDS: persist SchemaContext</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1511</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Recovery of data persisted in previous versions has an interesting problem, where we need to interpret stored data based on upgraded SchemaContext &amp;#8211; without us knowing what the data actually was.&lt;/p&gt;

&lt;p&gt;Distributed data store has access to the current global SchemaContext, as it is required for DataTree operation. Include a portable (either YIN- or YANG-based) copy of SchemaContext in the data store Snapshot and use that for initial recovery. Also perform an explicit snapshot when the SchemaContext changes.&lt;/p&gt;

&lt;p&gt;This will allow us to restore the data store snapshot, irrespective of what the runtime software is, and then perform an explicit schema adaptation step, where we convert the data tree to our current running schema context.&lt;/p&gt;

&lt;p&gt;Furthermore it will allow software-asymmetric cluster, such as those existing when a cluster is being upgraded node-by-node, without it having been shut down.&lt;/p&gt;

&lt;p&gt;A final benefit is that SchemaContext will be available at the persistence layer, allowing us to perform schema-informed serialization and deserialization (including object de-duplication). This capability is needed to deal with heavily-aliased data, such as coming from BGP, which reuses NormalizedNode instances for equal path attributes.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26065">CONTROLLER-1511</key>
            <summary>CDS: persist SchemaContext</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                                <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>Wed, 13 Apr 2016 11:29:55 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:09 +0000</updated>
                                                                            <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="51410" author="rovarga" created="Thu, 26 May 2016 21:27:59 +0000"  >&lt;p&gt;Actually, be cannot really rely on schema context assembly, because it is subject to implementation bugs, which means that we have no guarantee that the YANG models persisted by the old version will result in exactly the same schema context when assembled by the new version.&lt;/p&gt;

&lt;p&gt;In order to perform reasonable data migrations, the new version has to recover the same effective schema context.&lt;/p&gt;

&lt;p&gt;Hence we need to define a data format for the persisted data.&lt;/p&gt;

&lt;p&gt;I think the best option is to use XSD specification and emit XMLWriter events. This will give use XML output, which we can encode into binary using EXI. We can even do schema-informed encoding, as Exificient can turn XSDs into grammars.&lt;/p&gt;</comment>
                            <comment id="51411" author="rovarga" created="Thu, 26 May 2016 21:40:52 +0000"  >&lt;p&gt;Since we are changing the snapshot format as part of BUG-5280, I will reserve a place for such a document in the new format, so we can retrofit it later without any breakage.&lt;/p&gt;

&lt;p&gt;Also linking updated BUG-2880 as it is blocking progress here.&lt;/p&gt;</comment>
                            <comment id="66563" author="rovarga" created="Fri, 15 Mar 2019 23:02:19 +0000"  >&lt;p&gt;I think an acceptable solution is to store the YANG models and rely on SchemaContext assembly producing sufficiently-compatible result across major revision bumps.&lt;/p&gt;</comment>
                            <comment id="66623" author="rovarga" created="Fri, 29 Mar 2019 13:39:26 +0000"  >&lt;p&gt;We actually everything we need to make this happen, as we can easily turn SchemaContext into a set of ModuleDeclaredStatements and stream them out as YANG text. Since we are bumping serialization format in &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1888&quot; title=&quot;Update journal/snapshot/datastore version&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1888&quot;&gt;&lt;del&gt;CONTROLLER-1888&lt;/del&gt;&lt;/a&gt; it makes sense to batch this change in. It requires a new payload, emitted when the schemacontext changes and update to the snapshot format (i.e. additional metadata class).&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="26002">CONTROLLER-1448</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="26071">CONTROLLER-1517</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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5718</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=5718]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10308"><![CDATA[New Feature]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02r0v:</customfieldvalue>

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