<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Also, many LDLM locks do not have an interval.&nbsp; The node which has the most of them is generally an&nbsp;MDS, which can have millions in certain scenarios, and makes no use of the interval at all.&nbsp; This is a lot of lost memory
 if we're really adding part of the interval_tree in to the lock struct (I haven't looked at the patch).</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> lustre-devel &lt;lustre-devel-bounces@lists.lustre.org&gt; on behalf of NeilBrown &lt;neilb@suse.com&gt;<br>
<b>Sent:</b> Wednesday, February 20, 2019 4:37:58 PM<br>
<b>To:</b> James Simmons; Lustre Developement<br>
<b>Cc:</b> Vitaly Fertman<br>
<b>Subject:</b> Re: [lustre-devel] Lustre interval tree problems</font>
<div>&nbsp;</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On Wed, Feb 20 2019, James Simmons wrote:<br>
<br>
&gt; With the port of the interval tree work to the OpenSFS branch several <br>
&gt; problems have been pointed out in the implementation which impacts<br>
&gt; performance and the memory footprint in some cases.<br>
&gt;<br>
&gt; The biggest issues is the ability to add duplicate locks. The reason<br>
&gt; the original implementation avoided adding duplicate locks was to<br>
&gt; avoid the extra compares being done with the same type of locks.<br>
&gt; Especially in the case of the range lock where you can end up with<br>
&gt; many duplicate read locks [0-EOF]. Comparing with 1000s of identical<br>
&gt; read locks will have an impact. Their is teh question of the memory<br>
&gt; foot print in this case as well. I believe this is the case with the<br>
&gt; ldlm locks as well since the ability to skip large lock amounts if<br>
&gt; not matching has been lost.<br>
&gt;<br>
&gt; The next problem Vitaly pointed in the implementation is the emebedding<br>
&gt; of lit_root in ldlm_interval_tree also has a negative impact. Since many<br>
&gt; locaks are kept in memory he wants to see that ldlm_lock struct stay as<br>
&gt; small as possible. Explained that is why ldlm_interval was not original<br>
&gt; embedded but allocated separately. I added him to this chain.<br>
<br>
Thanks for this valuable feedback!&nbsp; I'll look over the code again with<br>
these issues in mind, and let you know what I find.<br>
<br>
NeilBrown<br>
</div>
</span></font></div>
</body>
</html>