<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi all,<br><br></div>We&#39;ve
 a feature performance.parallel-readdir [1] that is known to improve 
performance of readdir operations [2][3][4]. The option is especially 
useful when distribute scale is relatively large (&gt;10) and is known 
to improve performance of readdir operations even on smaller scale of 
distribute count 1 [4].<br><br></div><div>However, this option is not enabled by default. I am here proposing to make this as a default feature.<br><br></div><div>But,
 there are some important things to be addressed in readdir-ahead (which
 is core part of parallel-readdir), before we can do so:<br><br>To summarize issues with readdir-ahead:<div>* There
 seems to be one prominent problem of missing dentries with 
parallel-readdir. There was one problem discussed on tech-list just 
yesterday. I&#39;ve heard about this recurrently earlier too. Not sure 
whether this is the problem of missing unlink/rmdir/create etc fops (see
 below) in readdir-ahead. ATM, no RCA.<br><div>* fixes to maintain stat-consistency in dentries pre-fetched have not made into downstream yet (though merged upstream [5]).<br></div><div>*
 readdir-ahead doesn&#39;t implement directory modification fops like 
rmdir/create/symlink/link/unlink/rename. This means cache won&#39;t be 
updated wiith newer content, even on single mount till its 
consumed by application or purged.<br></div>* dht linkto-files should 
store relative positions of subvolumes instead of absolute subvolume 
name, so that changes to immediate child won&#39;t render them stale.<br></div><div>*
 Features parallel-readdir depends on to be working should be enabled 
automatically even though they were off earlier when parallel-readdir is
 enabled [6].<br> </div></div><div dir="ltr"><br>I&#39;ve listed important known issues above. But we can discuss which are the blockers for making this feature as a default.<br><br>Thoughts?<br><br>[1] <a href="http://review.gluster.org/#/c/16090/" target="_blank">http://review.gluster.org/#/c/16090/</a><br>[2] <a href="https://events.static.linuxfound.org/sites/events/files/slides/Gluster_DirPerf_Vault2017_0.pdf" target="_blank">https://events.static.linuxfound.org/sites/events/files/slides/Gluster_DirPerf_Vault2017_0.pdf</a> (sections on small directory)<br>[3] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1628807#c34" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1628807#c35</a><br>[4] <a href="https://www.spinics.net/lists/gluster-users/msg34956.html" target="_blank">https://www.spinics.net/lists/gluster-users/msg34956.html</a><br>[5] <a href="http://review.gluster.org/#/c/glusterfs/+/20639/" target="_blank">http://review.gluster.org/#/c/glusterfs/+/20639/</a><br>[6] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1631406" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1631406</a><br><br></div><div>regards,<br></div><div>Raghavendra<div class="gmail-adL"><br></div></div></div></div></div></div></div></div></div>