<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:03:03 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-31] Please inspect the HLD for readdir+</title>
                <link>https://jira.whamcloud.com/browse/LU-31</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;eeb, after some further investigation for readdir+, I found there some issues for my original lockless mode readdir+, I have described them in the HLD, they are difficult to be resolved. So I have made the HLD for simplified lock mode readdir+, and also hope to implement the lustre special traversing directory tool.&lt;/p&gt;

&lt;p&gt;Sir, please inspect the HLD when you have time, and give your suggestion. Thanks!&lt;/p&gt;

&lt;p&gt;Happy Christmas~&lt;/p&gt;</description>
                <environment></environment>
        <key id="10141">LU-31</key>
            <summary>Please inspect the HLD for readdir+</summary>
                <type id="8" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11300&amp;avatarType=issuetype">Review task</type>
                            <parent id="10131">LU-23</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="10200">Won&apos;t Do</resolution>
                                        <assignee username="eeb">Eric Barton</assignee>
                                    <reporter username="yong.fan">nasf</reporter>
                        <labels>
                    </labels>
                <created>Thu, 23 Dec 2010 23:38:15 +0000</created>
                <updated>Wed, 6 Jun 2018 00:50:18 +0000</updated>
                            <resolved>Wed, 6 Jun 2018 00:50:18 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                            <comments>
                            <comment id="10360" author="yong.fan" created="Wed, 29 Dec 2010 07:47:13 +0000"  >&lt;p&gt;updated at 2010-12-29&lt;/p&gt;</comment>
                            <comment id="10361" author="yong.fan" created="Wed, 29 Dec 2010 07:48:35 +0000"  >&lt;p&gt;updated at 2010-12-29&lt;/p&gt;</comment>
                            <comment id="10376" author="liang" created="Thu, 30 Dec 2010 20:23:01 +0000"  >&lt;p&gt;Hi, I got a chance to read through the document for interest, and have a question:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;I think we don&apos;t pass parent fid over wire for setattr and setxattr, 0.3.4 says we want to take CW LIST lock of parent for these operations, does this mean that we have to change RPC format for setattr and setxattr, Which may have compatible issue with old version clients like 1.8.* or 2.0.*?&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="10377" author="yong.fan" created="Thu, 30 Dec 2010 20:30:29 +0000"  >&lt;p&gt;In fact, as current master implementation, when create, the pfid is recorded as some kind of xattr by child, such information can be used by readdir+.&lt;/p&gt;</comment>
                            <comment id="10379" author="laisiyao" created="Fri, 31 Dec 2010 00:20:46 +0000"  >&lt;p&gt;I have some concerns:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;size glimpse RPC comprises most of the RPCs in readdir+, compared with aggregate&lt;br/&gt;
  glimpse, SOM can avoid most of such RPCs. We&apos;d better evaluate the current progress&lt;br/&gt;
  and remaining work of SOM, if there is no roadblocks, SOM should be a better option&lt;br/&gt;
  than aggregate glimpse.&lt;/li&gt;
	&lt;li&gt;I prefer STL (Sub Tree Lock) than the new LIST lock, because the first one has two&lt;br/&gt;
  advantages:
	&lt;ul&gt;
		&lt;li&gt;it can avoid access conflicts (both pseudo and real ones) because it&apos;s weak, while&lt;br/&gt;
    LIST lock looks more like strong STL.&lt;/li&gt;
		&lt;li&gt;STL can be used in the future for WBC.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;no need to introduce a new READDIRPLUS RPC, we can expand current MDS_READPAGE in a&lt;br/&gt;
  backward compatible way: in the request to MDS client specifies what attributes it&lt;br/&gt;
  wants along with entry names. In this way readdir() will issue normal MDS_READPAGE&lt;br/&gt;
  and store directory entries in directory page cache; while statahead thread issue&lt;br/&gt;
  MDS_READPAGE to fetch file attributes.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="10423" author="green" created="Wed, 12 Jan 2011 19:22:25 +0000"  >&lt;p&gt;I sort of agree and disagree on this point from Lai:&lt;br/&gt;
&amp;gt; size glimpse RPC comprises most of the RPCs in readdir+, compared with aggregate&lt;br/&gt;
&amp;gt; glimpse, SOM can avoid most of such RPCs. We&apos;d better evaluate the current progress&lt;br/&gt;
&amp;gt; and remaining work of SOM, if there is no roadblocks, SOM should be a better option&lt;br/&gt;
&amp;gt; than aggregate glimpse.&lt;/p&gt;

&lt;p&gt;SOM will definitely bring in a big boost here, but it&apos;s a long work to make SOM really happen with all the cases.&lt;/p&gt;

&lt;p&gt;As for glimpse aggregation, I sort of agree that it won&apos;t bring in many of the benefits. But what will bring in many benefits, almost at SOM level is async &quot;glimpse ahead&quot; just kind of like what we currently do with statahead. As long as we can get the data faster than app processes it, of course.&lt;/p&gt;</comment>
                            <comment id="10424" author="laisiyao" created="Thu, 13 Jan 2011 07:57:35 +0000"  >&lt;p&gt;Considering that file may have multiple stripes (max 160), async glimpse may not help much. Besides, if the system is WAN based, async glimpse may not help at all.&lt;/p&gt;

&lt;p&gt;IMHO current SOM design is too complicated, because it tries to ensure client update SOM in all cases (server and client recovery), if it&apos;s allowed to miss SOM update and let MDS update it later itself (when MDS finds SOM not set upon handling a getattr from client), SOM can be much simplified.&lt;/p&gt;</comment>
                            <comment id="229172" author="yong.fan" created="Wed, 6 Jun 2018 00:50:18 +0000"  >&lt;p&gt;Related documents became inactive for a long time, need more consideration for readdir+ feature.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="10073" name="readdir+.doc" size="69632" author="yong.fan" created="Wed, 29 Dec 2010 07:47:13 +0000"/>
                            <attachment id="10074" name="readdir+.pdf" size="125653" author="yong.fan" created="Wed, 29 Dec 2010 07:48:35 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                    <customfield id="customfield_10020" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Bugzilla ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>17845.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <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|hzw07z:</customfieldvalue>

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