<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:27:06 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-9540] cache HSM actions in memory by FID</title>
                <link>https://jira.whamcloud.com/browse/LU-9540</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The time required to submit new HSM requests grows linearly with the size of the HSM actions log. This is because we first run &lt;tt&gt;hsm_find_compatible()&lt;/tt&gt; on the HAL to see if there are already existing actions running or waiting on the files in the HAL. We should avoid this by keeping an in-memory such cache of actions indexed by FID.&lt;/p&gt;</description>
                <environment></environment>
        <key id="46212">LU-9540</key>
            <summary>cache HSM actions in memory by FID</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</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="wc-triage">WC Triage</assignee>
                                    <reporter username="jhammond">John Hammond</reporter>
                        <labels>
                    </labels>
                <created>Fri, 19 May 2017 14:56:32 +0000</created>
                <updated>Mon, 8 Jun 2020 22:54:24 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="270979" author="nrutman" created="Sat, 23 May 2020 01:51:07 +0000"  >&lt;p&gt;This seems like vast overkill to a dubious function - &lt;br/&gt;
hsm_find_compatible can simply be skipped for everything except CANCEL.&lt;br/&gt;
Nikitas is working on a patch.&lt;/p&gt;</comment>
                            <comment id="271280" author="jhammond" created="Wed, 27 May 2020 13:26:04 +0000"  >&lt;p&gt;&amp;gt;  hsm_find_compatible can simply be skipped for everything except CANCEL.&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;hsm_find_compatible()&lt;/tt&gt; is used to deduplicate restore requests (from multiple clients, say) for a given file.&lt;/p&gt;</comment>
                            <comment id="271366" author="nangelinas" created="Wed, 27 May 2020 22:53:34 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=jhammond&quot; class=&quot;user-hover&quot; rel=&quot;jhammond&quot;&gt;jhammond&lt;/a&gt;, another developer within HPE created a patch to skip calling hsm_find_compatible_cb() when all requests in a hal are archives or restores; we are trying to determine if this is safe to do. The CDT will set HS_EXISTS before sending an archive request to a copytool in mdt_hsm_agent_send ()&amp;#45;&amp;gt;mdt_hsm_add_hal(), so an archive request for the same file but for a different archive backend will not be sent as mdt_hsm_agent_send()&amp;#45;&amp;gt;mdt_hsm_is_action_compat() will return false; the duplicate request will be failed in the llog and should be removed by the CDT thread later due to timeout. I think by changing the checks in the latter function to also return false if the archive ids are the same unless HS_DIRTY is set should serialize archive requests in all cases? Restore requests seem to take the layout lock on the file in mdt_hsm_register_hal()-&amp;gt;cdt_restore_handle_add() before being added to the llog so I think this should serialize them as well, although it blocks the caller, e.g. lfs, so I am not sure if it&apos;s ideal.&lt;/p&gt;

&lt;p&gt;It already seems possible to have duplicate archive requests added to the llog or duplicate restores racing for the layout lock without applying the aforementioned patch as multiple RPCs can race in mdt_hsm_register_hal(), so I think the patch wouldn&apos;t be introducing a new race but making the existing one more likely. Implementing the cache in this ticket sounds like a more elegant solution, but do you think skipping the call to hsm_find_compatible_cb() in the way described would be safe? We can submit the patch to Gerrit if needed, of course.&lt;/p&gt;</comment>
                            <comment id="272316" author="nangelinas" created="Mon, 8 Jun 2020 21:55:38 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=jhammond&quot; class=&quot;user-hover&quot; rel=&quot;jhammond&quot;&gt;jhammond&lt;/a&gt;, I have submitted the aforementioned patch at &lt;a href=&quot;https://review.whamcloud.com/#/c/38867/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/38867/&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="59489">LU-13651</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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|hzzd9z:</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>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

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