<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:34:47 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>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-3540] recovery for cross-MDT operation</title>
                <link>https://jira.whamcloud.com/browse/LU-3540</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When one MDT restarts after a crash, it will process all of the records in its local update llog. It will batch up all of the updates with the same ur_master_index, ur_batchid and sends them in an OUT_UPDATE RPC to each of the remote targets that were part of the operation. At the mean time, all other MDTs will be notified, and they  will also check their own local update log, and all of the related records will be sent to the failover MDT.  &lt;/p&gt;

&lt;p&gt;The MDT who receives the updates from other MDT, will check whether the corresponding updates are already recorded in their local update llog.&lt;br/&gt;
If the update was already committed, then the MDT will reply with an arbitrary pb_transno &amp;lt; pb_last_committed.&lt;/p&gt;

&lt;p&gt;If the updates do not exist in the update llog, they will compare the master transno in the update record with the transno in the last_rcvd, if the transno in update record is smaller than the one in the last_rcvd, it means the master already sent the update to this MDT, and the update is already being exected and committed, and the update log has been deleted, so it will also return an arbitrary smaller transno as above. If the transno in the update record is larger, it will replay the update with a new transno.&lt;/p&gt;

&lt;p&gt;In all of cases, the MDT will reply to the sender with the transno.&lt;br/&gt;
If the sender is the recovering MDT, which is the master for this operation, it will build the in-memory operation state to track the remote updates, and when all of the remote updates have committed, it can cancel the local update record.&lt;br/&gt;
Then client will send replay/resend request to the failover MDT,&lt;/p&gt;

&lt;p&gt;The master MDT will check whether the request exists in the update log by the request xid. &lt;/p&gt;

&lt;p&gt;If it does not exist, it will compare the request transno with its own transno, only replay the request if its transno is bigger than the last transno(lcd_last_transno) of this MDT.&lt;/p&gt;

&lt;p&gt;If it does exist, it means the recovery between MDTs already handle this case. So it will return an arbitrary smaller transno, then client can remove the request from the replay list.&lt;br/&gt;
If there are any failures during the above 2 steps, lfsck daemon will be triggered to fix the filesystem. &lt;/p&gt;

&lt;p&gt;For more details, please refer to the HLD for DNE phase II.&lt;/p&gt;</description>
                <environment></environment>
        <key id="19636">LU-3540</key>
            <summary>recovery for cross-MDT operation</summary>
                <type id="7" iconUrl="https://jira.whamcloud.com/images/icons/issuetypes/task_agile.png">Technical task</type>
                            <parent id="19630">LU-3534</parent>
                                    <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/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="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="di.wang">Di Wang</assignee>
                                    <reporter username="di.wang">Di Wang</reporter>
                        <labels>
                    </labels>
                <created>Sat, 29 Jun 2013 18:12:10 +0000</created>
                <updated>Tue, 22 Dec 2015 03:30:35 +0000</updated>
                            <resolved>Wed, 1 Jul 2015 16:42:38 +0000</resolved>
                                                    <fixVersion>Lustre 2.8.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="117559" author="gerrit" created="Fri, 5 Jun 2015 08:13:23 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/11737/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/11737/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3540&quot; title=&quot;recovery for cross-MDT operation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3540&quot;&gt;&lt;del&gt;LU-3540&lt;/del&gt;&lt;/a&gt; lod: update recovery thread&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 4f53536d002c13886210b672b657795baa067144&lt;/p&gt;</comment>
                            <comment id="120062" author="simmonsja" created="Wed, 1 Jul 2015 16:23:01 +0000"  >&lt;p&gt;Is their work left?&lt;/p&gt;</comment>
                            <comment id="120067" author="di.wang" created="Wed, 1 Jul 2015 16:42:19 +0000"  >&lt;p&gt;Oh, this part has been landed.&lt;/p&gt;</comment>
                            <comment id="120068" author="di.wang" created="Wed, 1 Jul 2015 16:42:39 +0000"  >&lt;p&gt;patches landed to master&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzvuf3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8904</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>