<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:02:57 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-13637] Combining RO-PCC/RW-PCC/HSM with FLR HLD</title>
                <link>https://jira.whamcloud.com/browse/LU-13637</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;This ticket track the HLD of&#160;combining RO-PCC/RW-PCC/HSM with FLR.&lt;/p&gt;</description>
                <environment></environment>
        <key id="59458">LU-13637</key>
            <summary>Combining RO-PCC/RW-PCC/HSM with FLR HLD</summary>
                <type id="2" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="qian_wc">Qian Yingjin</assignee>
                                    <reporter username="qian_wc">Qian Yingjin</reporter>
                        <labels>
                    </labels>
                <created>Fri, 5 Jun 2020 08:25:01 +0000</created>
                <updated>Mon, 3 Apr 2023 16:37:31 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="272582" author="adilger" created="Thu, 11 Jun 2020 09:07:35 +0000"  >&lt;p&gt;Yingjin, I updated the doc with comments.  It might make more sense to use a wiki page for this, since it is easier to edit and comment on a shared document.&lt;/p&gt;</comment>
                            <comment id="272616" author="qian_wc" created="Thu, 11 Jun 2020 14:33:24 +0000"  >&lt;p&gt;Hi Andreas,&lt;/p&gt;

&lt;p&gt;I have create a wiki page for review: &lt;a href=&quot;https://wiki.whamcloud.com/pages/viewpage.action?pageId=140382838&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://wiki.whamcloud.com/pages/viewpage.action?pageId=140382838&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Qian&lt;/p&gt;</comment>
                            <comment id="273252" author="nrutman" created="Fri, 19 Jun 2020 00:23:29 +0000"  >&lt;p&gt;I don&apos;t have perms for the wiki page, so I&apos;ll comment here.&lt;br/&gt;
1. Should the hsm_states flags and the lov_comp_md_entry_flags could/should be normalized?&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;HS_DIRTY=LCME_FL_STALE,&lt;/li&gt;
	&lt;li&gt;HS_EXISTS=LCME_FL_INIT,&lt;/li&gt;
	&lt;li&gt;HS_NOARCHIVE=LCME_FL_NOSYNC&lt;/li&gt;
	&lt;li&gt;HS_LOST=LCME_FL_OFFLINE&lt;/li&gt;
	&lt;li&gt;Remaining HSM flags could just be added to the lcme_flags.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Why: reduce redundancy; simplify status gathering for a replica; provide common state for any replica type; HS_DIRTY and LCME_FL_STALE need to remain in sync for any HSM replicas.&lt;/p&gt;

&lt;p&gt;2. HS_RELEASED on an HSM replica seems like it needs to imply LCME_FL_STALE on all non-HSM replicas. In fact, the whole concept of &quot;released&quot; is fuzzy; it&apos;s a collective state of non-HSM replicas, and maybe is not a very useful concept anymore. It seems that per-replica flags should just indicate if an individual replica exists (so we can free up its space) and is/isn&apos;t stale (so we know to re-sync). An &quot;HSM release&quot; command should not exist - it should instead be &quot;lfs mirror delete&quot; for whichever replica you want to remove. &quot;Released&quot; is just the state of not having any OST-based replicas. &lt;/p&gt;

&lt;p&gt;3. For an HS_PCC_RW file, LCME_FL_STALE need only be set if the data is changed (version is updated); otherwise the implication is that all data has to be copied back. I suppose you can check at Restore time if the version has changed and skip the copyback if not and clear the stale flag (don&apos;t want to increase l.gen in this case).&lt;/p&gt;

&lt;p&gt;4. &quot;After taking the lease, an empty mirror file is created on the local PCC-RW cache. The file data is then copied from the OST into PCC-RW and the client closes the lease with a layout write with PCC-RW attach intent. ...&quot;  This idea seems like the old &quot;lfs migrate&quot; path: create a new file, copy data to it, then attach/extend the new file to the old layout, checking layout generations, etc. I think it should actually go the other way: extend the layout adding a new hsm replica first. Mark it stale. Now copytool on client just needs to sync that stale hsm replica, as normal HSM op. It will start out HS_PCC_RO, or really just HS_ARCHIVED and not HS_DIRTY. Maybe don&apos;t even need the HS_PCC_RO state. Now say we want to write to the PCC file, then we call an IOCTL setting the PCC replica as LCME_FL_PREF_RW, and set LCME_FL_STALE on the other replicas (don&apos;t need HS_PCC_RW either). Lustre read from another client would follow the Restore path (lfs mirror resync strategy), after which the OST replica is marked preferred. &lt;/p&gt;

&lt;p&gt;I think the changes I have suggested above start to treat &quot;external&quot; files as first-class Lustre objects and puts them on an even footing (as far as the MDS is concerned) with files stored on OSTs. A layout on OSTs or on HSMs or on PCC may be authoritative/primary, and we use copytools as needed to do the resync in the required direction. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="50588">LU-10606</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="59332">LU-13602</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="75392">LU-16700</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="35135" name="Combine HSM RW-PCC RO-PCC with FLR HLD.docx" size="288697" author="qian_wc" created="Wed, 10 Jun 2020 12:48:15 +0000"/>
                            <attachment id="35147" name="Combine_FLR+HSM+PCC-RW+PCC-RO_HLD.docx" size="299316" author="adilger" created="Thu, 11 Jun 2020 09:06:00 +0000"/>
                    </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|i0121r:</customfieldvalue>

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