<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:33:19 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-17182] lctl pool_add is slow when using individual OST</title>
                <link>https://jira.whamcloud.com/browse/LU-17182</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Using&#160;&lt;tt&gt;lctl pool_add FS OST0 OST1...&lt;/tt&gt; is way slower than using an hostlist expression like &lt;tt&gt;OST&lt;span class=&quot;error&quot;&gt;&amp;#91;0-7&amp;#93;&lt;/span&gt;&lt;/tt&gt;, see an example below:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
[root@localhost ~]# time lctl pool_add fs.pool_test fs-OST[0-7]
OST fs-OST0000_UUID added to pool fs.pool_test
OST fs-OST0001_UUID added to pool fs.pool_test
OST fs-OST0002_UUID added to pool fs.pool_test
OST fs-OST0003_UUID added to pool fs.pool_test
OST fs-OST0004_UUID added to pool fs.pool_test
OST fs-OST0005_UUID added to pool fs.pool_test
OST fs-OST0006_UUID added to pool fs.pool_test
OST fs-OST0007_UUID added to pool fs.pool_test

real    0m9.008s
user    0m0.000s
sys     0m0.007s
[root@localhost ~]# time lctl pool_add fs.pool_test OST0000 OST0001 OST0002 OST0003 OST0004 OST0005 OST0006 OST0007
OST fs-OST0000_UUID added to pool fs.pool_test
OST fs-OST0001_UUID added to pool fs.pool_test
OST fs-OST0002_UUID added to pool fs.pool_test
OST fs-OST0003_UUID added to pool fs.pool_test
OST fs-OST0004_UUID added to pool fs.pool_test
OST fs-OST0005_UUID added to pool fs.pool_test
OST fs-OST0006_UUID added to pool fs.pool_test
OST fs-OST0007_UUID added to pool fs.pool_test

real    1m7.024s
user    0m0.004s
sys     0m0.014s
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;One could expect that both command to have the same runtime&lt;/p&gt;</description>
                <environment></environment>
        <key id="78348">LU-17182</key>
            <summary>lctl pool_add is slow when using individual OST</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="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="flei">Feng Lei </assignee>
                                    <reporter username="rdruon">Raphael Druon</reporter>
                        <labels>
                    </labels>
                <created>Wed, 11 Oct 2023 13:45:29 +0000</created>
                <updated>Mon, 22 Jan 2024 16:06:46 +0000</updated>
                            <resolved>Wed, 25 Oct 2023 20:02:46 +0000</resolved>
                                                    <fixVersion>Lustre 2.16.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="388882" author="pjones" created="Wed, 11 Oct 2023 14:39:22 +0000"  >&lt;p&gt;Feng Lei&lt;/p&gt;

&lt;p&gt;Could you please investigate?&lt;/p&gt;

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

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="388901" author="adilger" created="Wed, 11 Oct 2023 15:40:25 +0000"  >&lt;p&gt;Yes, this is kind of a &quot;known&quot; problem - the &quot;&lt;tt&gt;lctl pool&amp;#42;&lt;/tt&gt;&quot; commands are all waiting on the update of the pool status to arrive at the client, which is asynchronous and takes several seconds to complete.  You can see that with the individual OST list that it takes 67s, which is almost exactly 8x 9s taken to do all of them at once.&lt;/p&gt;</comment>
                            <comment id="388905" author="joe.grund" created="Wed, 11 Oct 2023 16:02:50 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=adilger&quot; class=&quot;user-hover&quot; rel=&quot;adilger&quot;&gt;adilger&lt;/a&gt; Possible to treat the second version (individual OST lists) the same as the first (indexset)? I.E. both versions run in parallel?&lt;/p&gt;</comment>
                            <comment id="388929" author="adilger" created="Wed, 11 Oct 2023 17:53:12 +0000"  >&lt;p&gt;I was going to say that the main problem is that the &quot;add one at a time&quot; case doesn&apos;t know whether there will be later commands run or not.  They are all treated separately, and the command &lt;b&gt;explicitly&lt;/b&gt; waits for the pool layout to be updated.  That was added because the pool command would return without the actual update, and give the admin a false impression that the pool had been successfully updated, when it wasn&apos;t always the case.&lt;/p&gt;

&lt;p&gt;One option would be to add an &quot;&lt;tt&gt;&amp;#45;&amp;#45;async&lt;/tt&gt;&quot; option to the pool commands that skips calling &lt;tt&gt;check_pool_cmd_result()&lt;/tt&gt;, so that if you know a number of them will be executed (e.g. from EMF) that the preliminary ones are executed without waiting (and have a low chance of being done incorrectly by a user), and EMF can check the results afterward.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;However&lt;/b&gt;, I now see that the second case is not &quot;&lt;tt&gt;lctl pool_add ...; lctl pool_add ...; ...&lt;/tt&gt;&quot; but rather a single execution with multiple OSTs on the command-line.  It should be possible to handle this with a single check at the end.   It looks like &lt;tt&gt;jt_pool_cmd()&lt;/tt&gt; would need to build up the OST list and execute all of the adds (removes) at once, instead of calling &lt;tt&gt;check_pool_cmd_result()&lt;/tt&gt; for each argument separately.&lt;/p&gt;</comment>
                            <comment id="389058" author="gerrit" created="Thu, 12 Oct 2023 08:05:10 +0000"  >&lt;p&gt;&quot;Feng Lei &amp;lt;flei@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52654&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52654&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17182&quot; title=&quot;lctl pool_add is slow when using individual OST&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17182&quot;&gt;&lt;del&gt;LU-17182&lt;/del&gt;&lt;/a&gt; utils: pool_add send OSTs in one batch&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: c6e77f54c450d2ca5283af05e54d171006e25a70&lt;/p&gt;</comment>
                            <comment id="390592" author="gerrit" created="Wed, 25 Oct 2023 18:09:40 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/52654/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/52654/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17182&quot; title=&quot;lctl pool_add is slow when using individual OST&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17182&quot;&gt;&lt;del&gt;LU-17182&lt;/del&gt;&lt;/a&gt; utils: pool_add send OSTs in one batch&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: c8963c4935168c749896664e40aa4d11be90e0c3&lt;/p&gt;</comment>
                            <comment id="390619" author="pjones" created="Wed, 25 Oct 2023 20:02:46 +0000"  >&lt;p&gt;Landed for 2.16&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                                        </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|i03y3j:</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>