<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Tahoma" size="2"><span style="font-size:10pt;">
<div><font color="#1F497D">Sorry for the wrong incomplete message sent by mistake earlier.</font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">Hi Sussant,</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">Extremely sorry for the belated reply. Thanks&nbsp; for your input. We will try having rebalance then create a set of small files with a random pattern generation and check where it
falls in by DM_TYPE &nbsp;DHT.</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">I have one short query:</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">We were also thinking to use (in case we need ) <b>Translators/cluster/unify</b><b> </b>along with <b>NUFA or ALU scheduler</b>. However we noticed <b>Translators/cluster/unify
</b>became<b> &nbsp;obsolete/legacy</b><b> </b>in gluster site , does it mean automatically<b> ALU, NUFA,rr scheduler also became obsolete</b><b> </b><b>or </b><b>not support</b><b>ed</b><b> ?</b><b> Can you please clarify ?</b></span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;"><b>Is the Translators/cluster/unify</b><b> is supported in 3.3.2 ( we are </b><b>currently </b><b>using) and following configuration would work ?</b><b> </b></span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;"><b>If not c</b><b>an you please suggest you how to use ALU</b><b>/</b><b>NUFA </b><b>scheduler</b><b> </b><b>with 3.3.2 if there is any specific mechanism</b><b>?</b></span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">volume unify</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;&nbsp; type cluster/unify</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;&nbsp; subvolumes brick1 brick2 brick3 brick4</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;&nbsp; option namespace brick-ns # should be a node which is not present in 'subvolumes'</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;&nbsp; option scheduler NUFA/ALU/rr&nbsp;&nbsp;&nbsp; # NUFA/ALU or Simple round-robin scheduler</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">end-volume</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">Thanks again for your time and advice.</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2" color="#1F497D"><span style="font-size:11pt;">Regards,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-----Original Message-----<br>

From: Susant Palai [<a href="mailto:spalai@redhat.com">mailto:spalai@redhat.com</a>]
<br>

Sent: Thursday, May 21, 2015 6:17 PM<br>

To: Subrata Ghosh<br>

Cc: gluster-devel@gluster.org; gluster-users@gluster.org; Nobin Mathew; Vijay Bellur<br>

Subject: Re: Regarding the issues gluster DHT and Layouts of bricks</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Commets inline.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">----- Original Message -----</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; From: &quot;Subrata Ghosh&quot; &lt;<a href="mailto:subrata.ghosh@ericsson.com">subrata.ghosh@ericsson.com</a>&gt;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; To: <a href="mailto:gluster-devel@gluster.org">gluster-devel@gluster.org</a>, <a href="mailto:gluster-users@gluster.org">gluster-users@gluster.org</a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Cc: &quot;Nobin Mathew&quot; &lt;<a href="mailto:nobin.mathew@ericsson.com">nobin.mathew@ericsson.com</a>&gt;, &quot;Susant Palai&quot; &lt;<a href="mailto:spalai@redhat.com">spalai@redhat.com</a>&gt;, &quot;Vijay Bellur&quot;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; &lt;<a href="mailto:vbellur@redhat.com">vbellur@redhat.com</a>&gt;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Sent: Thursday, 21 May, 2015 4:26:05 PM</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Subject: Regarding the issues gluster DHT and&nbsp; Layouts of bricks</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Hi&nbsp; All,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Could you please guide us&nbsp; to solve the following DHT and brick layout </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; problem we are&nbsp; dealing with ? Questions are marked bold.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Problem statement :</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; 1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; We have a requirement to achieve maximum write and read performance</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; and we have to meet some committed performance metrics.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Our goal is to place each file into different bricks to get</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optimal performance and also observer the nature of the</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throughput , hence need to have a mechanism&nbsp; to generate</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; different hash using gluster glusterfs.gf_dm_hashfn, </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; (assuming number of files are : N , Number of Bricks :N)&nbsp; to place </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; spate bricks.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; How to make sure each file has different hash and&nbsp;&nbsp; falls to</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; different bricks ?</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Other way to put the question if I&nbsp; know the range of the brick</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; layout or more precisely if I know the&nbsp; hex value of the desired hash </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; ( so that it will be placed desired brick)&nbsp; that we need to generate </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; from Davis-Meyer algorithm used in gluster,&nbsp; Can we create a file name </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; such that, that also solve our problem to some extent?</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; 2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; We tried to experiment to see&nbsp; how a file in gluster is decided to be</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; placed in a particular brick following gluster glusterfs.gf_dm_hashfn </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; and took some idea from</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; some articles&nbsp; like</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://gluster.readthedocs.org/en/latest/Features/dht/">http://gluster.readthedocs.org/en/latest/Features/dht/</a> ,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://joejulian.name/blog/dht-misses-are-expensive/">https://joejulian.name/blog/dht-misses-are-expensive/</a> page which</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; describes layout for that brick&nbsp; and calculate a hash for the file.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To minimize collisions or generating different hash in such way to</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; place each file in different bricks ( file 1 =&gt; brick A, file 2 =&gt;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Brick B, file 3=&gt;&nbsp; Brick C, file 4 =&gt; brick D)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; We use kind of similar script to get the hash value for </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; a file</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; def gf_dm_hashfn(filename):</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp; return ctypes.c_uint32(glusterfs.gf_dm_hashfn(</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filename,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; len(filendame)))</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; if __name__ == &quot;__main__&quot;:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp; print hex(gf_dm_hashfn(sys.argv[1]).value)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; We can then calculate the hash for a filename:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; # python gf_dm_hash.py file1</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; 0x99d1b6fL</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Extended attribute is fetch to check the range and try to match the </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; above generated hash value.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; getfattr -n trusted.glusterfs.dht -e hex file1</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; However we are not able to exactly follow till this point ,&nbsp; how the</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hash value matched to one of the layout assignments, to yield what we</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call a hashed location.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; My question is if I&nbsp; know the range of brick lay out ( say</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; 0xc0000000 to&nbsp; 0xffffffff, is range&nbsp; select a hash 0xc0070000 ) where </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; to be placed the next file can we generate the name ( kind of reverse </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; of&nbsp; gluster</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; glusterfs.gf_dm_hashfn) ?</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">I am not aware of any such mechanism.&nbsp; You will have to generate file names manually and run them through your script to check whether it falls in the brick range.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&nbsp;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; PS :&nbsp; Susant : Can you throw some light or suggest&nbsp; a method we are </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; trying to solve.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Thanks for your time.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Best Regards,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; Subrata Ghosh</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&gt; </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Regards,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Susant</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">&nbsp;</span></font></div>
</span></font>
</body>
</html>