<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:07:05 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-7226] improve osd-zfs blocksize heuristics</title>
                <link>https://jira.whamcloud.com/browse/LU-7226</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The current osd-zfs blocksize selection heuristic since &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4865&quot; title=&quot;osd-zfs: increase object block size dynamically as object grows&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4865&quot;&gt;&lt;del&gt;LU-4865&lt;/del&gt;&lt;/a&gt; was landed is &quot;grow blocksize up to maximum as long as linear writes are done from the start of the file&quot;.  That is OK for sequential file IO is done, but does not handle other use cases very well.  Also, this can have a serious negative performance impact if the ZFS blocksize is larger than the Lustre RPC size (e.g. in a mixed-client-version environment where some clients have 1MB RPCs and others have 4MB RPCs, &lt;tt&gt;recordsize=4M&lt;/tt&gt;), since it would cause the blocksize to grow up to 4MB, but clients writing to a file with 1MB RPCs would cause three extra read-modify-write cycles for every RPC.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7225&quot; title=&quot;change ladvise wire protocol for lockahead and future usage&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7225&quot;&gt;&lt;del&gt;LU-7225&lt;/del&gt;&lt;/a&gt; was filed to allow the client to explicitly specify the blocksize for applications/libraries that are very Lustre-savvy, but until that is implemented, and for applications that are not using the ladvise API, the osd-zfs code should have a better blocksize selection heuristic.&lt;/p&gt;

&lt;p&gt;One option is to check for niobuf sizes in the BRW write RPCs, to limit the blocksize to the minimum or median niobuf size within the BRW RPCs.  That ensures the blocksize does not grow beyond the maximum RPC size, and for clients that are aggregating smaller client-side writes into one RPC it tries to determine what the natural IO size is.  This is not ideal, since random write workloads do not necessarily imply random read workloads, but since the client is already doing IO aggregation it should avoid the worst offenders.  Also, if the blocksize is too small then RAID-Z/Z2 would have a lot of space/parity overhead, but possibly not worse than read-modify-write of large blocks.&lt;/p&gt;</description>
                <environment></environment>
        <key id="32369">LU-7226</key>
            <summary>improve osd-zfs blocksize heuristics</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="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="3">Duplicate</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                    </labels>
                <created>Mon, 28 Sep 2015 23:01:53 +0000</created>
                <updated>Tue, 4 Oct 2016 21:28:36 +0000</updated>
                            <resolved>Tue, 4 Oct 2016 21:28:36 +0000</resolved>
                                    <version>Lustre 2.9.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="160751" author="adilger" created="Thu, 4 Aug 2016 02:41:00 +0000"  >&lt;p&gt;The current patch &lt;a href=&quot;http://review.whamcloud.com/18441&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18441&lt;/a&gt; &quot;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4865&quot; title=&quot;osd-zfs: increase object block size dynamically as object grows&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4865&quot;&gt;&lt;del&gt;LU-4865&lt;/del&gt;&lt;/a&gt; zfs: grow block size by write pattern&quot; will also select a smaller blocksize for a file if it is written with a random pattern, which should be enough to resolve this issue when it is landed.&lt;/p&gt;</comment>
                            <comment id="168268" author="adilger" created="Tue, 4 Oct 2016 21:28:36 +0000"  >&lt;p&gt;Close as a duplicate of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4865&quot; title=&quot;osd-zfs: increase object block size dynamically as object grows&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4865&quot;&gt;&lt;del&gt;LU-4865&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="39676">LU-8591</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="24075">LU-4865</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <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|hzxoyn:</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>