<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:53:40 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-703] Handle remote failures for write Tx recording operations async</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-703</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;In the distributed data store&apos;s TransactionProxy, for the write Tx put/merge/delete recording operations, we send the message using akka&apos;s &quot;set and forget&quot; tell mechanism. This sends the message async with no blocking but we don&apos;t get error feedback. &lt;/p&gt;

&lt;p&gt;This can lead to unpredictable results. Eg, a write operation to a remote shard could fail due to a temporary network failure but the subsequent commit could succeed. If that happened, since the write message never reached the remote shard, it wouldn&apos;t actually be committed and we would erroneously report that it did. &lt;/p&gt;

&lt;p&gt;In order to verify that put/merge/delete operations succeed, we need to use akka&apos;s &quot;ask&quot; pattern which returns a Future, from which we can ascertain failures. However, ideally, we don&apos;t want to block the put/merge/delete waiting for the result. Furthermore, the put/merge/delete methods on the public API don&apos;t throw any checked exceptions and we don&apos;t want to throw unchecked exceptions as this would technically violate the API contract. These methods were not intended to throw exceptions in the API design - the intention was to perform validation and report failures at commit time.&lt;/p&gt;

&lt;p&gt;Therefore, in discussing with Moiz and Basheer, the proposed solution is to cache the Futures from all put/merge/delete operations and check them at commit time, specifically in the canCommit phase. If any Futures failed, we fail the commit.&lt;/p&gt;

&lt;p&gt;In addition, to honor the uncommitted read semantics, for a read operation we need to also to check any prior cached put/merge/delete Futures to ensure consistency. If any prior Futures failed, we fail the read.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25257">CONTROLLER-703</key>
            <summary>Handle remote failures for write Tx recording operations async</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <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="tpantelis">Tom Pantelis</assignee>
                                    <reporter username="tpantelis">Tom Pantelis</reporter>
                        <labels>
                    </labels>
                <created>Mon, 18 Aug 2014 20:48:18 +0000</created>
                <updated>Wed, 27 Aug 2014 15:18:11 +0000</updated>
                            <resolved>Wed, 27 Aug 2014 15:18:11 +0000</resolved>
                                    <version>Helium</version>
                                                    <component>mdsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="48890" author="tpantelis" created="Wed, 20 Aug 2014 19:28:23 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/10109/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/10109/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <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>1576</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=1576]]></customfieldvalue>

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

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