<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 style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hybrid IO is a new feature in Lustre 2.17 which automatically switches to direct IO for IO above a certain configurable size - it relies on another new Lustre trick, which is the ability to do
<i>unaligned</i> direct IO. In fact, unaligned direct IO support is in Lustre 2.16, so if you have that or newer (Or EXA6 from DDN), you could skip the alignment work you're describing. (Much of the purpose of this work - unaligned direct IO and hybrid -
is to make the benefits of direct IO easy to access.)</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Currently we only switch for IO above a certain size, but we intend to eventually switch to direct IO for IO when lock contention is detected as well. We simply haven't found time to do the development there yet.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
If you're running a new enough version, try it, and I'll be curious to hear your feedback. This work was aimed partly at solving the problem you're dealing with without having to use any form of relaxed consistency, which as you're experiencing is challenging
to deal with.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
See here for background:</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<a href="https://wiki.lustre.org/images/a/a0/LUG2024-Hybrid_IO_Path_Update-Farrell.pdf">https://wiki.lustre.org/images/a/a0/LUG2024-Hybrid_IO_Path_Update-Farrell.pdf</a></div>
<div id="appendonsend"></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> Freddie Witherden <freddie@witherden.org><br>
<b>Sent:</b> Saturday, February 7, 2026 10:29 AM<br>
<b>To:</b> Patrick Farrell <pfarrell@ddn.com><br>
<b>Subject:</b> Re: [lustre-discuss] Group Lock Semantics</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On 07/02/2026 07:43, Patrick Farrell wrote:<br>
> So, if you are able to switch to direct IO as you mention, group locks <br>
> should be unnecessary and are better avoided. Direct IO works like this <br>
> in 2.15 and newer. (Also, in 2.17, hybrid IO can do this switch for you <br>
> automatically for larger IO sizes.)<br>
<br>
It will take a bit of work to engineer for direct I/O (we need to ensure <br>
all of our starting offsets are page aligned and special-case the final <br>
writes so we either do RMW or if at the very end of the file do a <br>
buffered write), but its nothing insurmountable. Will report back in a <br>
few days.<br>
<br>
What do you mean by hybrid I/O here?<br>
<br>
Regards, Freddie.<br>
</div>
</span></font></div>
</body>
</html>