<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:36:42 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-10619] Tiny writes improvement: Size + glimpse changes</title>
                <link>https://jira.whamcloud.com/browse/LU-10619</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The current tiny writes code (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9409&quot; title=&quot;Lustre small IO write performance improvement&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9409&quot;&gt;&lt;del&gt;LU-9409&lt;/del&gt;&lt;/a&gt;) updates the size for each OSC object.  Skipping this nets about a 15% performance improvement, probably more (maybe a lot more) for shared file writing.&lt;/p&gt;

&lt;p&gt;As suggested by Jinshan in &lt;a href=&quot;https://review.whamcloud.com/#/c/27903/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/27903/&lt;/a&gt;, we could likely skip this by changing how size works on the client.&lt;/p&gt;

&lt;p&gt;Specifically, we would update size only at the upper layer at the end of tiny writes - ll_tiny_write_end - storing the size in llite and doing i_size_write (because the kernel uses inode size outside of Lustre).  We would have to rewrite osc_glimpse and possibly the getattr/setattr code to do the modified size handling correctly.&lt;/p&gt;

&lt;p&gt;Notes from Jinshan:&lt;br/&gt;
&quot;this still has significant overhead for tiny write. Have you thought about extending osc_refresh_count() -&amp;gt; cl_object_attr_get() to get size info from LLITE layer, therefore you don&apos;t need to call this function every single time.&lt;/p&gt;

&lt;p&gt;about osc_refresh_count(): when writing the last page to the OST, it needs to figure out the file size so that it knows how much data is valid in the last page. This is why OSC needs to call the function to &apos;refresh&apos; count. LLITE always has uptodate file size for write therefore it doesn&apos;t need to keep the object size uptodate at OSC layer.&lt;/p&gt;

&lt;p&gt;Of course, if you would like to do it as I said, you need to fix osc_object_glimpse() too because the size in oinfo is not uptodate.&quot;&lt;/p&gt;</description>
                <environment></environment>
        <key id="50617">LU-10619</key>
            <summary>Tiny writes improvement: Size + glimpse changes</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</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="paf">Patrick Farrell</assignee>
                                    <reporter username="paf">Patrick Farrell</reporter>
                        <labels>
                    </labels>
                <created>Tue, 6 Feb 2018 20:24:59 +0000</created>
                <updated>Fri, 21 Jan 2022 01:02:43 +0000</updated>
                                            <version>Lustre 2.11.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="220424" author="paf" created="Thu, 8 Feb 2018 15:58:58 +0000"  >&lt;p&gt;Reflecting on this, slightly cleaner thoughts:&lt;/p&gt;

&lt;p&gt;I believe this means the only size we keep would be i_size, and rather than keeping size for each sub object, we would calculate it from i_size when needed.  I&apos;m a little bit concerned about possible effect on KMS and such, but I get the appeal - Many writes to one file definitely spend a lot of time updating all the attributes.&lt;/p&gt;</comment>
                            <comment id="220656" author="paf" created="Fri, 9 Feb 2018 21:36:02 +0000"  >&lt;p&gt;In osc_refresh_count, we use attr-&amp;gt;cat_kms.  This seems odd - Why don&apos;t we use attr-&amp;gt;cat_size?&lt;/p&gt;

&lt;p&gt;I am, to say the least, a little lost. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="45743">LU-9409</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="46605">LU-9627</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|hzzsbr:</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>