<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial">Good questions,&nbsp;<div>Why are there no reply?</div><div><br><pre>At&nbsp;2011-08-16&nbsp;04:53:50,"Patrick&nbsp;J.&nbsp;LoPresti"&nbsp;&lt;lopresti@gmail.com&gt;&nbsp;wrote:
&gt;(FUSE&nbsp;developers:&nbsp;&nbsp;Although&nbsp;my&nbsp;questions&nbsp;are&nbsp;specifically&nbsp;about
&gt;Gluster,&nbsp;I&nbsp;suspect&nbsp;most&nbsp;of&nbsp;the&nbsp;answers&nbsp;have&nbsp;more&nbsp;to&nbsp;do&nbsp;with&nbsp;FUSE,&nbsp;so&nbsp;I
&gt;figure&nbsp;this&nbsp;is&nbsp;on-topic&nbsp;for&nbsp;your&nbsp;list.&nbsp;&nbsp;If&nbsp;I&nbsp;figured&nbsp;wrong,&nbsp;I
&gt;apologize.)
&gt;
&gt;I&nbsp;have&nbsp;done&nbsp;quite&nbsp;a&nbsp;bit&nbsp;of&nbsp;searching&nbsp;looking&nbsp;for&nbsp;answers&nbsp;to&nbsp;these
&gt;questions,&nbsp;and&nbsp;I&nbsp;just&nbsp;cannot&nbsp;find&nbsp;them...
&gt;
&gt;I&nbsp;think&nbsp;I&nbsp;understand&nbsp;how&nbsp;the&nbsp;Linux&nbsp;page&nbsp;cache&nbsp;works&nbsp;for&nbsp;an&nbsp;ordinary
&gt;local&nbsp;(non-FUSE)&nbsp;partition.&nbsp;&nbsp;Specifically:
&gt;
&gt;1)&nbsp;When&nbsp;my&nbsp;application&nbsp;calls&nbsp;read(),&nbsp;it&nbsp;reads&nbsp;from&nbsp;the&nbsp;page&nbsp;cache.&nbsp;&nbsp;If
&gt;the&nbsp;page(s)&nbsp;are&nbsp;not&nbsp;resident,&nbsp;the&nbsp;kernel&nbsp;puts&nbsp;my&nbsp;application&nbsp;to&nbsp;sleep
&gt;and&nbsp;gets&nbsp;busy&nbsp;reading&nbsp;them&nbsp;from&nbsp;disk.
&gt;
&gt;2)&nbsp;When&nbsp;my&nbsp;application&nbsp;calls&nbsp;write(),&nbsp;it&nbsp;writes&nbsp;to&nbsp;the&nbsp;page&nbsp;cache.
&gt;The&nbsp;kernel&nbsp;will&nbsp;--&nbsp;eventually,&nbsp;when&nbsp;it&nbsp;feels&nbsp;like&nbsp;it&nbsp;--&nbsp;flush&nbsp;those
&gt;dirty&nbsp;pages&nbsp;to&nbsp;disk.
&gt;
&gt;3)&nbsp;When&nbsp;my&nbsp;application&nbsp;calls&nbsp;mmap(),&nbsp;page&nbsp;cache&nbsp;pages&nbsp;are&nbsp;mapped&nbsp;into
&gt;my&nbsp;process's&nbsp;address&nbsp;space,&nbsp;allowing&nbsp;me&nbsp;to&nbsp;create&nbsp;a&nbsp;dirty&nbsp;page&nbsp;or&nbsp;read
&gt;a&nbsp;page&nbsp;by&nbsp;accessing&nbsp;memory.
&gt;
&gt;4)&nbsp;When&nbsp;the&nbsp;kernel&nbsp;reads&nbsp;a&nbsp;page,&nbsp;it&nbsp;might&nbsp;decide&nbsp;to&nbsp;read&nbsp;some&nbsp;other
&gt;pages,&nbsp;depending&nbsp;on&nbsp;the&nbsp;underlying&nbsp;block&nbsp;device's&nbsp;read-ahead
&gt;parameters.&nbsp;&nbsp;I&nbsp;can&nbsp;control&nbsp;these&nbsp;via&nbsp;"blockdev".&nbsp;&nbsp;On&nbsp;the&nbsp;write&nbsp;side,&nbsp;I
&gt;can&nbsp;exercise&nbsp;some&nbsp;control&nbsp;with&nbsp;various&nbsp;VM&nbsp;parameters&nbsp;(dirty_ratio
&gt;etc).&nbsp;&nbsp;I&nbsp;can&nbsp;also&nbsp;use&nbsp;calls&nbsp;like&nbsp;fsync()&nbsp;and&nbsp;posix_fadvise()&nbsp;to&nbsp;exert
&gt;some&nbsp;control&nbsp;over&nbsp;page&nbsp;cache&nbsp;management&nbsp;at&nbsp;the&nbsp;application&nbsp;level.
&gt;
&gt;
&gt;My&nbsp;question&nbsp;is&nbsp;pretty&nbsp;simple.&nbsp;&nbsp;If&nbsp;you&nbsp;had&nbsp;to&nbsp;re-write&nbsp;the&nbsp;above&nbsp;four
&gt;points&nbsp;for&nbsp;a&nbsp;Gluster&nbsp;file&nbsp;system,&nbsp;what&nbsp;would&nbsp;they&nbsp;look&nbsp;like?&nbsp;&nbsp;If&nbsp;it
&gt;matters,&nbsp;I&nbsp;am&nbsp;specifically&nbsp;interested&nbsp;in&nbsp;Gluster&nbsp;3.2.2&nbsp;on&nbsp;Suse&nbsp;Linux
&gt;Enterprise&nbsp;Server&nbsp;11&nbsp;SP1&nbsp;(Linux&nbsp;2.6.32.43&nbsp;+&nbsp;whatever&nbsp;Suse&nbsp;does&nbsp;to
&gt;their&nbsp;kernels).
&gt;
&gt;Does&nbsp;Gluster&nbsp;use&nbsp;the&nbsp;page&nbsp;cache&nbsp;on&nbsp;read()?&nbsp;&nbsp;On&nbsp;write()?&nbsp;&nbsp;If&nbsp;so,&nbsp;how
&gt;does&nbsp;it&nbsp;ensure&nbsp;coherency&nbsp;between&nbsp;clients?&nbsp;&nbsp;If&nbsp;not,&nbsp;how&nbsp;does&nbsp;mmap()
&gt;work&nbsp;(or&nbsp;does&nbsp;it&nbsp;not&nbsp;work)?
&gt;
&gt;What&nbsp;read-ahead&nbsp;will&nbsp;the&nbsp;kernel&nbsp;use?&nbsp;&nbsp;Does&nbsp;posix_fadvise(...,
&gt;POSIX_FADV_WILLNEED)&nbsp;have&nbsp;any&nbsp;effect&nbsp;on&nbsp;a&nbsp;Gluster&nbsp;file&nbsp;system?
&gt;
&gt;I&nbsp;find&nbsp;it&nbsp;hard&nbsp;to&nbsp;imagine&nbsp;that&nbsp;I&nbsp;am&nbsp;the&nbsp;only&nbsp;person&nbsp;with&nbsp;questions
&gt;like&nbsp;these...&nbsp;&nbsp;Did&nbsp;I&nbsp;miss&nbsp;a&nbsp;FAQ&nbsp;list&nbsp;somewhere?
&gt;
&gt;Thanks.
&gt;
&gt;&nbsp;-&nbsp;Pat
&gt;_______________________________________________
&gt;Gluster-users&nbsp;mailing&nbsp;list
&gt;Gluster-users@gluster.org
&gt;http://gluster.org/cgi-bin/mailman/listinfo/gluster-users
</pre></div></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>