<div dir="ltr"><div>UPDATE:</div><div><br></div><div>Most of the plumbing work for new protocol for GlusterFS 4.0 is now done. Considering its a lot of code, there is scope for cleanup in terms of reducing duplicate code etc, but we would like to take them up post 4.0 branching.</div><div><br></div><div>Some of the main patches, which needs your review and merging help are:</div><div><br></div><div>* <a href="https://review.gluster.org/18850">https://review.gluster.org/18850</a> : new iatt (for statx() support for future, but also to keep the backward compatibility).</div><div>* <a href="https://review.gluster.org/18768">https://review.gluster.org/18768</a> : Changes to common RPC structure, can be used to send more info in every frame (fop) passed over. Currently adds create-time of the flag. </div><div>* <a href="https://review.gluster.org/19096">https://review.gluster.org/19096</a> : Adding more APIs to dict (so that IATT/UUID can be sent on wire properly).</div><div>* <a href="https://review.gluster.org/19095">https://review.gluster.org/19095</a> : To modify fop XDRs to add iattx and new dict format in every fop.</div><div>* <a href="https://review.gluster.org/19098">https://review.gluster.org/19098</a> : add all the new fops in protocol xlators. (mostly copy paste and basic modifications).</div><div><br></div><div>With these patches merged, the protocol will be brand new, and also will be backward compatible with 3.x version (both client and server). I request people concerned with protocol to review these patches, and get them merged before Jan 15th for branch-out.</div><div><br></div><div>Regards,</div><div>Amar</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 11, 2017 at 6:04 PM, Amar Tumballi <span dir="ltr">&lt;<a href="mailto:atumball@redhat.com" target="_blank">atumball@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hi All,<br><br></div>Below are the proposed protocol changes (ie, XDR changes on the wire) we are thinking for Gluster 4.0.<br><br></div><ul><li>rchecksum/fsetattr: Add &#39;gfid&#39; field on wire</li></ul><p>Basic work already done at <a href="https://review.gluster.org/#/c/3956/" target="_blank">https://review.gluster.org/#/<wbr>c/3956/</a> . Considering its 5yrs old patch, I refreshed it at <a href="https://review.gluster.org/17656" target="_blank">https://review.gluster.org/<wbr>17656</a> for experimental branch, and it is all working fine.</p><p>This patch also helps in creating new RPC program etc, so for all other XDR changes, we only need to handle the specific change in the patch.</p><p><span style="color:rgb(0,255,0)">STATUS: GREEN</span><br></p><ul><li>statx() support</li></ul><p><a href="https://github.com/gluster/glusterfs/issues/273" target="_blank">https://github.com/gluster/<wbr>glusterfs/issues/273</a> talks more on it. We can consider to make XDR changes for sure even if we don&#39;t implement the fops in all other xlator IMO, so there won&#39;t be clients&#39; compatibility issue.</p><p><span style="color:rgb(255,0,0)">STATUS: RED  </span>(As no work has been started yet)</p><ul><li>Changes to &#39;gf_flock&#39; structure on wire</li></ul><p>More on it @ <a href="https://review.gluster.org/#/c/15698" target="_blank">https://review.gluster.org/#/<wbr>c/15698</a>. Can be handled without this change by using xdata, but adding this field in the XDR will make it faster, and less error prone.</p><p><span style="color:rgb(255,255,0)">STATUS: YELLOW</span></p><ul><li>Changes in few of the &#39;fops&#39; to get struct iatt in _cbk</li></ul><p>This is needed for mainly handling the cases of fail over during rebalance, self-heal etc. Today, because we don&#39;t have a protocol support, our cross architecture compatibility is broken, mainly because we send iatt as binary in xdata dict, which is not desirable.</p><p><span style="color:rgb(255,0,0)">STATUS: RED</span></p><p>(Red as we need to hear from team on what are the changes needed, and it would be significant change as we may have to change the fops signature itself).</p><ul><li>fadvise()</li></ul><p>As per the email thread <a href="http://lists.gluster.org/pipermail/gluster-devel/2017-August/053457.html" target="_blank">http://lists.gluster.org/<wbr>pipermail/gluster-devel/2017-<wbr>August/053457.html</a>, if we implement the fop, we would need a new XDR for it.</p><p><span style="color:rgb(255,0,0)">STATUS: RED</span></p><p>(It is red as it is still in discovery phase)<br></p><ul><li>Misc</li></ul><p>We don&#39;t have any other proposal for protocol change for now, other than a suggestion from Jeff Darcy about taking out the common flags we use across the board, inside xdata, and make them as &#39;flags&#39; itself in XDR, for better perf, and manageability. <br></p><p><span style="color:rgb(255,0,0)">STATUS: RED <br></span></p><p>(Mainly because the work is about discovery and changing the fops signature itself).</p><p><br></p><p>This is the good time to highlight if you need any further changes in protocol itself, and start towards getting it implemented and tested. I volunteer to review all such patches, and happy to co-ordinate it on experimental branch before sending them as a single patch (or multiple dependent, granular patches) on master when we feel it is ready.</p><p><br></p><p>Regards,<br></p><p>Amar<span class="HOEnZb"><font color="#888888"><br></font></span></p><span class="HOEnZb"><font color="#888888"><p><br></p><div><div><div>-- <br><div class="m_5708517654178220580gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Amar Tumballi (amarts)<br></div></div></div></div></div>
</div></div></div></font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Amar Tumballi (amarts)<br></div></div></div></div></div>
</div>