<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:24:53 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-2399] create objects on truncate</title>
                <link>https://jira.whamcloud.com/browse/LU-2399</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;OSP tries to address one issue found in LOV/OSC: objid is assigned outside of transaction and this can lead to gaps in objid sequence and leaked OST objects.&lt;/p&gt;

&lt;p&gt;OSP does this assignment with transaction open. but there is one exception: truncate on a file with no objects created. if later we create OST objects (upon open for write), then MDS sends OST_PUNCH to propagate non-zero size to OST. but we can&apos;t do this holding open transaction. so we again have to assign&lt;br/&gt;
objid and send OST_PUNCH outside of transaction. this lead to leaked objects&lt;br/&gt;
(in case of server failure) and complications in the code.&lt;/p&gt;

&lt;p&gt;so we have decided to avoid this situation: truncate will be creating OST objects, return newly created LOVEA back to the client and the client will&lt;br/&gt;
be doing regular truncate to OSTs propagating requested size.&lt;/p&gt;

&lt;p&gt;essentially truncate becomes a form of open. this is especially true with&lt;br/&gt;
SOM, because truncate has to open an epoch. we may use this fact to re-use&lt;br/&gt;
some code on MDS to implement OST object creation on truncate.&lt;/p&gt;</description>
                <environment></environment>
        <key id="10188">LU-2399</key>
            <summary>create objects on truncate</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="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="jhammond">John Hammond</assignee>
                                    <reporter username="bzzz">Alex Zhuravlev</reporter>
                        <labels>
                    </labels>
                <created>Mon, 17 Jan 2011 23:34:07 +0000</created>
                <updated>Mon, 19 Mar 2018 20:54:02 +0000</updated>
                            <resolved>Mon, 19 Mar 2018 20:54:02 +0000</resolved>
                                    <version>Lustre 2.4.0</version>
                                    <fixVersion>Lustre 2.10.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>9</watches>
                                                                            <comments>
                            <comment id="46149" author="tappro" created="Mon, 8 Oct 2012 07:14:03 +0000"  >&lt;p&gt;ticket was solved and landed, wasn&apos;t it?&lt;/p&gt;</comment>
                            <comment id="47252" author="adilger" created="Thu, 1 Nov 2012 10:56:38 +0000"  >&lt;p&gt;Alex, was this fixed in master?&lt;/p&gt;</comment>
                            <comment id="48437" author="adilger" created="Tue, 27 Nov 2012 15:52:05 +0000"  >&lt;p&gt;Alex, was this fixed when LOD landed to master?&lt;/p&gt;</comment>
                            <comment id="48465" author="bzzz" created="Tue, 27 Nov 2012 23:36:13 +0000"  >&lt;p&gt;sorry, meant to answer on the first question, but .. so I tried to implement this, but met a problem on the client. It was months ago,&lt;br/&gt;
but if I remember correctly the client does not issue OST_SETATTR if lsm was not set before MDS_REINT_SETATTR:&lt;/p&gt;

&lt;p&gt;	/* NB: ATTR_SIZE will only be set after this point if the size&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;resides on the MDS, ie, this file has no objects. */&lt;br/&gt;
	if (lsm != NULL)&lt;br/&gt;
		attr-&amp;gt;ia_valid &amp;amp;= ~ATTR_SIZE;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I wouldn&apos;t mind to change this though.&lt;/p&gt;</comment>
                            <comment id="49011" author="johann" created="Mon, 10 Dec 2012 18:28:12 +0000"  >&lt;p&gt;TBH, i tend to think we can get rid off this code. Jinshan?&lt;/p&gt;</comment>
                            <comment id="49012" author="jay" created="Mon, 10 Dec 2012 18:43:09 +0000"  >&lt;p&gt;Johann, client code will be okay without that piece of code, however I don&apos;t know if it will affect SoM.&lt;/p&gt;

&lt;p&gt;I tend to think it&apos;s okay after checking the code.&lt;/p&gt;</comment>
                            <comment id="49023" author="bzzz" created="Mon, 10 Dec 2012 23:06:59 +0000"  >&lt;p&gt;well, but it won&apos;t work with old clients, that&apos;s the point - originally we thought we create objects on truncate with no changes on the client side.&lt;/p&gt;</comment>
                            <comment id="49031" author="johann" created="Tue, 11 Dec 2012 03:46:35 +0000"  >&lt;p&gt;Sure, but if you backport this change to 2.1 (1.8 should be fine, right?), then all configurations with 2.1, 1.8 and 2.4 clients (99% of the 2.4 installations?) won&apos;t suffer from the leak issue. There is already a client incompatibility issue with older versions due to EINPROGRESS support.&lt;/p&gt;
</comment>
                            <comment id="49032" author="bzzz" created="Tue, 11 Dec 2012 03:48:34 +0000"  >&lt;p&gt;I&apos;m fine with that. the sooner we have this done, the sooner we can fix this issue and drop very specific bits of the code.&lt;/p&gt;</comment>
                            <comment id="68985" author="adilger" created="Tue, 15 Oct 2013 15:15:49 +0000"  >&lt;p&gt;Prototype patch in &lt;a href=&quot;http://review.whamcloud.com/5473&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/5473&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="73318" author="adilger" created="Wed, 11 Dec 2013 23:18:55 +0000"  >&lt;p&gt;The 5473 patch was abandoned, and does not implement the object create at file truncate time.&lt;/p&gt;

&lt;p&gt;This feature would be quite useful for Data-on-MDT to allow applications to specify the file size at create time and then the MDS decides what layout to use based on the specified file size (DOM for files &amp;lt; 1MB, 1 or few stripes for files &amp;lt; 1GB, widely striped for larger files).&lt;/p&gt;</comment>
                            <comment id="222922" author="bobijam" created="Fri, 9 Mar 2018 03:46:56 +0000"  >&lt;p&gt;Yes, truncate now will create enough OST objects to cover the file size .&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="17558">LU-2808</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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_10030" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Epic/Theme</customfieldname>
                        <customfieldvalues>
                                        <label>ORI-4</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzutb3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2410</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>