<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:09: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-14459] DNE3: directory auto split during create</title>
                <link>https://jira.whamcloud.com/browse/LU-14459</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Directory auto-split should be done when the &lt;tt&gt;dir_split_count&lt;/tt&gt; is hit during file creation to minimize the number of entries that need to be moved, rather than afterward.  Otherwise, the entries are being created on a single MDT first, and only being migrated on a later directory access.  This is sub-optimal for two reasons:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the initial file creation will be limited to a single MDT and not distribute the load across multiple MDTs, so just entry migration will still leave all the inodes on the original MDT&lt;/li&gt;
	&lt;li&gt;the post-creation migration will need to move many more files/entries to the other MDTs than if the files are created on the correct MDT to start with&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="62971">LU-14459</key>
            <summary>DNE3: directory auto split during create</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="laisiyao">Lai Siyao</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                            <label>dne3</label>
                    </labels>
                <created>Fri, 19 Feb 2021 23:01:29 +0000</created>
                <updated>Thu, 25 Aug 2022 01:18:31 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="292576" author="gerrit" created="Mon, 22 Feb 2021 07:50:20 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/41713&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/41713&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; mdt: autosplit directory during create&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: bcdd4c972b8e8b3a2f53158740a7ff3999c895f0&lt;/p&gt;</comment>
                            <comment id="292578" author="adilger" created="Mon, 22 Feb 2021 08:08:57 +0000"  >&lt;p&gt;Lai, I started looking into this to see if it was easily implemented.  I pushed the above patch with some preliminary changes, but it needs more work to be done properly.&lt;/p&gt;

&lt;p&gt;It looks like &lt;tt&gt;la_dirent_count&lt;/tt&gt; is only fetched once at getattr time, but then never updated when directories are added/removed.  That needs to be updated during file creation/removal so that the count is at least somewhat accurate as the directory changes.  If it simplifies implementation, then &lt;tt&gt;la_dirent_count&lt;/tt&gt; doesn&apos;t need to be perfect (e.g. it could be checked only when the name hash % 64 == 0, or whatever), since a growing directory should eventually increase it enough to cause a split, even if the split is a bit late, and for large directories it will eventually hit the stripe count limit and then an accurate count again doesn&apos;t matter.&lt;/p&gt;

&lt;p&gt;I wasn&apos;t sure exactly where to put the check for &lt;tt&gt;mdt_should_auto_split()&lt;/tt&gt; and &lt;tt&gt;mdt_auto_split_add()&lt;/tt&gt;.  First I was thinking in &lt;tt&gt;mdt_create()&lt;/tt&gt;, but that doesn&apos;t have &lt;tt&gt;la_dirent_count&lt;/tt&gt; for &lt;tt&gt;parent&lt;/tt&gt;, and adding a call to fetch it on each create seemed like a lot of added overhead.  It might make sense to move &lt;tt&gt;la_dirent_count&lt;/tt&gt; into &lt;tt&gt;struct mdt_object&lt;/tt&gt; rather than &lt;tt&gt;struct lu_attrs&lt;/tt&gt;, so that it is kept in memory with the directory instead of having to be fetched from the OSD repeatedly.  The &lt;tt&gt;la_dirent_count&lt;/tt&gt; could be fetched once for the &lt;tt&gt;mdt_object&lt;/tt&gt; when it is first loaded, then updated in memory for each create/unlink in the directory (it isn&apos;t clear if splitting the directory is useful for hard links or not?).&lt;/p&gt;

&lt;p&gt;Minor note - I see &lt;tt&gt;mot_auto_split_disabled&lt;/tt&gt; in &lt;tt&gt;struct mdt_object&lt;/tt&gt;, but it doesn&apos;t look like this is used anywhere and could be removed?  Or is there intended to be a way to force a directory to &lt;b&gt;not&lt;/b&gt; be split (e.g. attribute set on the directory or layout)?&lt;/p&gt;</comment>
                            <comment id="292593" author="laisiyao" created="Mon, 22 Feb 2021 09:48:56 +0000"  >&lt;p&gt;The dirent count is maintained in &lt;tt&gt;osd_object.oo_dirent_count&lt;/tt&gt;, which will be updated in creation/removal.&lt;/p&gt;

&lt;p&gt;The reason why it&apos;s not cached in &lt;tt&gt;mdt_object&lt;/tt&gt; is that if the newly created sub file is remote object, its parent is remote, thus the cached dirent count can&apos;t be updated.&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;mot_auto_split_disabled&lt;/tt&gt; is from legacy code, it&apos;s intended to stop retrying splitting a directory (maybe we should say both splitting and sub files migration) if some error occurred in auto-split, and it failed after several retries. But it&apos;s not implemented, and currently it will retry finish splitting directory once server notices an unfinished split.&lt;/p&gt;
</comment>
                            <comment id="295242" author="gerrit" created="Wed, 17 Mar 2021 15:12:22 +0000"  >&lt;p&gt;Lai Siyao (lai.siyao@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/42064&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/42064&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; mdt: trigger dir split in create/open&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 0edbcc3ce6de3f2c625c5f3be6805565a81fab51&lt;/p&gt;</comment>
                            <comment id="298614" author="gerrit" created="Tue, 13 Apr 2021 02:40:24 +0000"  >&lt;p&gt;Lai Siyao (lai.siyao@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43289&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43289&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; llite: init stripe pfid after dir split&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 768bc1b9e93ebc5c3c53612287abd3ca136c622c&lt;/p&gt;</comment>
                            <comment id="298615" author="gerrit" created="Tue, 13 Apr 2021 02:40:25 +0000"  >&lt;p&gt;Lai Siyao (lai.siyao@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43290&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43290&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; mdt: restripe parent may be a stripe&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 93711b9e00d28d235c2b10409bf135eb6c6e5944&lt;/p&gt;</comment>
                            <comment id="298616" author="gerrit" created="Tue, 13 Apr 2021 02:40:25 +0000"  >&lt;p&gt;Lai Siyao (lai.siyao@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43291&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43291&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; mdt: support fixed directory layout&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 0c0995c016c49f21b1dea938cdb71c6ccb7bf658&lt;/p&gt;</comment>
                            <comment id="301426" author="gerrit" created="Thu, 13 May 2021 01:26:43 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43684&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43684&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; lmv: change default hash type to crush&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: e859f57768b8b7ee2e44924c2b36e39a7f0f323a&lt;/p&gt;</comment>
                            <comment id="303888" author="gerrit" created="Tue, 8 Jun 2021 21:57:57 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/43684/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43684/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; lmv: change default hash type to crush&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: bb60caa1c6e7c14c201916dc0423442d10c86a27&lt;/p&gt;</comment>
                            <comment id="306999" author="gerrit" created="Mon, 12 Jul 2021 18:46:18 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/43289/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43289/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; llite: reset pfid after dir migration&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: abbe545a63b304e803ee62443dd65f1feeed15cd&lt;/p&gt;</comment>
                            <comment id="307000" author="gerrit" created="Mon, 12 Jul 2021 18:46:25 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/43290/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43290/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; mdt: restripe parent may be a stripe&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: a84efc8607ae8057499a8800699f336e821b03d8&lt;/p&gt;</comment>
                            <comment id="307001" author="gerrit" created="Mon, 12 Jul 2021 18:46:32 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/43291/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43291/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14459&quot; title=&quot;DNE3: directory auto split during create&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14459&quot;&gt;LU-14459&lt;/a&gt; mdt: support fixed directory layout&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 4c2514f4832801374092f3a48c755248af345566&lt;/p&gt;</comment>
                            <comment id="324673" author="adilger" created="Tue, 1 Feb 2022 04:19:21 +0000"  >&lt;p&gt;The performance impact of the auto-split during mdtest is too high, since this moves all of the entries while the benchmark is running, and DNE distributed transactions cause a lot of sync operations.  It would be better to delay the entry move, like put migrations for directory split onto a queue, and only move those entries when the RPC threads are idle (maybe with a &quot;low priority&quot; RPC queue that is only handled when high/normal RPCs are finished?).&lt;/p&gt;

&lt;p&gt;That would avoid blocking the benchmark RPCs, but still split the directory early so that the metadata IOPS of the directory increase during the test, and &quot;most&quot; entries are created on the right MDT, with fewer entries need to be moved later on.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10324">
                    <name>Cloners</name>
                                                                <inwardlinks description="is cloned by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="63001">LU-14467</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="61738">LU-14146</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="52253">LU-11025</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="62993">LU-14464</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="62998">LU-14466</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="69261">LU-15692</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="69578">LU-15720</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="68406">LU-15502</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|i01n6n:</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>