<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:32:20 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-3259] cl_lock refactoring</title>
                <link>https://jira.whamcloud.com/browse/LU-3259</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;In current implementation of CLIO, cl_lock is a data structure that records which parts of the file have been protected by DLM lock. The current design of the current cl_lock intended to reduce the overhead of rebuilding memory and data structures so that better performance could be achieved - particularly for small IO. In reality, the complexity of cl_lock implementation has meant the anticipated performance improvements could not be realized. In addition to an unrealized performance goal, the complexity of cl_lock has also been a source of a number of bugs and presents a high barrier to entry for new developers.&lt;/p&gt;

&lt;p&gt;The cl_lock cannot be removed altogether as it provides a mechanism to communicate the extent of a specific DLM lock for a specific IO. The new design of cl_lock will continue to fulfil this fundamental role: passing information between layers (from llite to OSC) so the DLM module understands the requirements for a given IO.&lt;/p&gt;

&lt;p&gt;The cl_lock operations can pass as both FTTB (from top to bottom) and FBTT (from bottom to top). This design introduces the possibility of deadlock, so an additional deadlock avoidance mechanism (closure) was also introduced. This makes cl_lock implementation extremely complex and hard to maintain, as well as difficult to understand.&lt;/p&gt;

&lt;p&gt;A cacheless cl_lock will be designed to replace the current implementation. In this implementation, DLM lock will still be maintained below the OSC layer. However, before each IO starts, we&apos;re going to rebuild cl_lock data structure in memory; after the IO is done, the cl_lock will be destroyed immediately.&lt;/p&gt;

&lt;p&gt;The new cl_lock will&lt;br/&gt;
New cl_lock Functional Coverage&lt;br/&gt;
File I/O&lt;/p&gt;

&lt;p&gt;Almost all file IOs requesting cl_lock will be affected by this design:&lt;/p&gt;

&lt;p&gt;    Write&lt;/p&gt;

&lt;p&gt;    Read&lt;/p&gt;

&lt;p&gt;    Fault&lt;/p&gt;

&lt;p&gt;    Setattr&lt;/p&gt;

&lt;p&gt;After cache-less cl_lock is introduced, above operations will use the new cl_lock interfaces to request cl_lock.&lt;br/&gt;
DLM lock cancellation callback&lt;/p&gt;

&lt;p&gt;When a DLM extent lock is cancelled, it will never be used by any active IOs. It is not necessary to notify CLIO upper layers to remove the DLM lock. This design will remove the FBTT operations: just write back data covered by the DLM lock and destroy it.&lt;br/&gt;
Anticipated Post Implementation Effect&lt;/p&gt;

&lt;p&gt;+ A cleaner, simpler design that will make the code easier to understand and maintain.&lt;/p&gt;

&lt;p&gt;+ Rebuilding the cl_lock data structure in memory for each IO may have negitive impact on the performance of the new design under certain workloads.&lt;/p&gt;</description>
                <environment></environment>
        <key id="18666">LU-3259</key>
            <summary>cl_lock refactoring</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="1">Fixed</resolution>
                                        <assignee username="jay">Jinshan Xiong</assignee>
                                    <reporter username="jay">Jinshan Xiong</reporter>
                        <labels>
                            <label>clio</label>
                    </labels>
                <created>Wed, 1 May 2013 05:06:10 +0000</created>
                <updated>Tue, 8 Nov 2016 14:04:43 +0000</updated>
                            <resolved>Wed, 17 Jun 2015 16:31:25 +0000</resolved>
                                    <version>Lustre 2.5.0</version>
                                    <fixVersion>Lustre 2.7.0</fixVersion>
                    <fixVersion>Lustre 2.8.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>14</watches>
                                                                            <comments>
                            <comment id="107250" author="jhammond" created="Wed, 18 Feb 2015 17:18:27 +0000"  >&lt;p&gt;landed: &lt;a href=&quot;http://review.whamcloud.com/#/c/10858/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/10858/&lt;/a&gt; &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3259&quot; title=&quot;cl_lock refactoring&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3259&quot;&gt;&lt;del&gt;LU-3259&lt;/del&gt;&lt;/a&gt; clio: cl_lock simplification&lt;br/&gt;
unlanded: &lt;a href=&quot;http://review.whamcloud.com/#/c/10859/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/10859/&lt;/a&gt; &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3259&quot; title=&quot;cl_lock refactoring&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3259&quot;&gt;&lt;del&gt;LU-3259&lt;/del&gt;&lt;/a&gt; clio: Revise read ahead implementation&lt;br/&gt;
unlanded: &lt;a href=&quot;http://review.whamcloud.com/#/c/11013/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/11013/&lt;/a&gt; &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3259&quot; title=&quot;cl_lock refactoring&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3259&quot;&gt;&lt;del&gt;LU-3259&lt;/del&gt;&lt;/a&gt; clio: get rid of cl_req&lt;/p&gt;</comment>
                            <comment id="109522" author="gerrit" created="Thu, 12 Mar 2015 03:07:08 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/10859/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/10859/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3259&quot; title=&quot;cl_lock refactoring&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3259&quot;&gt;&lt;del&gt;LU-3259&lt;/del&gt;&lt;/a&gt; clio: Revise read ahead implementation&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: db47990bbf7c59474f4c5ca28f96fdf424275516&lt;/p&gt;</comment>
                            <comment id="118808" author="simmonsja" created="Wed, 17 Jun 2015 15:47:06 +0000"  >&lt;p&gt;Any work left for this?&lt;/p&gt;</comment>
                            <comment id="118815" author="jay" created="Wed, 17 Jun 2015 16:08:43 +0000"  >&lt;p&gt;no&lt;/p&gt;</comment>
                            <comment id="118820" author="simmonsja" created="Wed, 17 Jun 2015 16:28:23 +0000"  >&lt;p&gt;We should close this ticket &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="10120">
                    <name>Blocker</name>
                                            <outwardlinks description="is blocking">
                                        <issuelink>
            <issuekey id="27498">LU-5880</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="31929">LU-7104</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="10387">LU-90</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="16326" name="cl_lock_simp.png" size="69395" author="rhenwood" created="Thu, 6 Nov 2014 21:57:56 +0000"/>
                    </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|hzvpwv:</customfieldvalue>

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