<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:52: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-12380] Allow reusing of write openhandle for reads</title>
                <link>https://jira.whamcloud.com/browse/LU-12380</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Currently when openlock cahe is used we distinguish 3 kinds of opens: WRITE, READ and EXEC. the O_RDWR mode is counted as WRITE.&lt;/p&gt;

&lt;p&gt;READ mode is compatible with either EXEC or WRITE, but EXEC and WRITE are incompatible between themselves.&lt;/p&gt;

&lt;p&gt;Give that there&apos;s a relatively common workload of open file for write ; write into file ; close ; open file for read.; read ; close is typical - it&apos;s an interesting idea to combine WRITE and READ handles at least somewhat.&lt;/p&gt;

&lt;p&gt;In absence of EXEC mode they are pretty much the same (when obtained in WRITE ; READ order). Exec of course makes it somewhat tricky since as long as we hold the write lock, we cannot do open for exec.&lt;/p&gt;

&lt;p&gt;Possible idea to tackle this:&lt;br/&gt;
When we have the WRITE openlock (and handle) and we want to open it for READ we can just detect the CW lock (guaranteeing the file did not get anywhere as well - important from correctness perspective!) and reuse the handle.&lt;/p&gt;

&lt;p&gt;Should we get a blocking ast on the CW lock (or perhaps even before? or as a lock/mode convert downgrade op (obviously it&apos;s a protocol change so more involved)?) - we would first send and acquire a read handle (and lock) and then release the CW lock and WRITE handle allowing us continuity in operations.&lt;/p&gt;</description>
                <environment></environment>
        <key id="55835">LU-12380</key>
            <summary>Allow reusing of write openhandle for reads</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="wc-triage">WC Triage</assignee>
                                    <reporter username="green">Oleg Drokin</reporter>
                        <labels>
                    </labels>
                <created>Tue, 4 Jun 2019 05:01:28 +0000</created>
                <updated>Mon, 10 Jun 2019 19:58:57 +0000</updated>
                                            <version>Lustre 2.13.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="248336" author="gerrit" created="Tue, 4 Jun 2019 05:40:54 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/35054&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/35054&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12380&quot; title=&quot;Allow reusing of write openhandle for reads&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12380&quot;&gt;LU-12380&lt;/a&gt; llite: Allow reusing write openhandle for reads from same node&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: aa731640ed6f780a284e2626874c7c910a1a0de6&lt;/p&gt;</comment>
                            <comment id="248912" author="green" created="Mon, 10 Jun 2019 19:42:40 +0000"  >&lt;p&gt;I&apos;ve noticed there&apos;s a fairly low hanging fruit for DoM possible wrt open locks.&lt;/p&gt;

&lt;p&gt;If we issue a PW DoM lock already and piggy back open bit on that - the above description works even better with less possible breakage.&lt;/p&gt;

&lt;p&gt;This is esp. nice in conjunction with &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12325&quot; title=&quot;Downgrade lock mode for DOM files when DOM bit gone&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12325&quot;&gt;LU-12325&lt;/a&gt; where initial open only happens for PR lock but only if we have writes - we get a separate DoM PW lock only when we write to the file. We then can avoid the read open MDS roundtrip and get all reads fully locally under the same PW lock.&lt;/p&gt;

&lt;p&gt;Shows real nice results in testing. &lt;/p&gt;</comment>
                            <comment id="248914" author="gerrit" created="Mon, 10 Jun 2019 19:58:56 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/35146&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/35146&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12380&quot; title=&quot;Allow reusing of write openhandle for reads&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12380&quot;&gt;LU-12380&lt;/a&gt; llite/mds: WIP! piggy back open handle on DoM PW lock&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: fccf51448389b5db202adf184dafa34579c7b358&lt;/p&gt;</comment>
                            <comment id="248915" author="gerrit" created="Mon, 10 Jun 2019 19:58:57 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/35147&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/35147&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12380&quot; title=&quot;Allow reusing of write openhandle for reads&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12380&quot;&gt;LU-12380&lt;/a&gt; llite: WIP Allow open lock converting.&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: c0f1e5bb557ed07e0c7a3d49e8026eba127591fe&lt;/p&gt;</comment>
                    </comments>
                    <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|i00hhz:</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>