<div dir="ltr"><div><div><div>Hi, all,<br><br></div>I&#39;m  applying for the GSOC project &quot;<b>Implement a Cassandra/NoSQL Connector or Translator for GlusterFS</b>&quot;.<br>Since I have completed my GSOC proposal, I would like to post it here, any sugggestions will be welcome.<br>
<br> <br><div>Here is my application in fedora project wiki:</div><div><a href="https://fedoraproject.org/wiki/GSOC_2013/Student_Application_Jilinxpd" target="_blank">https://fedoraproject.org/wiki/GSOC_2013/Student_Application_Jilinxpd</a><br>


</div><div><br></div><div>Here is my application with <b>proposal </b>in google-melange:</div><a href="https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/jilinxpd/18001" target="_blank">https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/jilinxpd/18001</a><br>
<br><br><br></div>Best regards,<br></div>Peidong<br><div><div><div><div><div><br><br><br><br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Jilin Xpd</b> <span dir="ltr">&lt;<a href="mailto:jilinxpd@gmail.com" target="_blank">jilinxpd@gmail.com</a>&gt;</span><br>

Date: 2013/4/25<br>Subject: Fwd: [GSoC] Implement a Cassandra/NoSQL Connector or Translator for GlusterFS<br>To: <a href="mailto:avati@redhat.com" target="_blank">avati@redhat.com</a>, Anand Babu Periasamy &lt;<a href="mailto:abperiasamy@gmail.com" target="_blank">abperiasamy@gmail.com</a>&gt;, <a href="mailto:johnmark@redhat.com" target="_blank">johnmark@redhat.com</a><br>

Cc: Buddhike Kurera &lt;<a href="mailto:bckurera@fedoraproject.org" target="_blank">bckurera@fedoraproject.org</a>&gt;<br><br><br><div dir="ltr"><div>Dear mentors,</div><div><br></div><div>I&#39;m Peidong, the guy applying for the GSOC project &quot;<b>Implement a Cassandra/NoSQL Connector or Translator for GlusterFS</b>&quot;.</div>


<div>I have finished my proposal, I hope you can help review it, thanks very much!</div><div><br></div><div>Here is my application in fedora project wiki:</div><div><a href="https://fedoraproject.org/wiki/GSOC_2013/Student_Application_Jilinxpd" target="_blank">https://fedoraproject.org/wiki/GSOC_2013/Student_Application_Jilinxpd</a><br>


</div><div><br></div><div>Here is my application with <b>proposal </b>in google-melange:</div><div><a href="https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/jilinxpd/18001" target="_blank">https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/jilinxpd/18001</a><br>


</div><div><br></div><br>Best Regards,<div>Peidong<br><br><br><br><br><div class="gmail_quote"><div>---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Jilin Xpd</b> <span dir="ltr">&lt;<a href="mailto:jilinxpd@gmail.com" target="_blank">jilinxpd@gmail.com</a>&gt;</span><br>

</div><div><div>
Date: 2013/4/23<br>Subject: Fwd: [GSoC] Implement a Cassandra/NoSQL Connector or Translator for GlusterFS<br>To: <a href="mailto:avati@redhat.com" target="_blank">avati@redhat.com</a>, <a href="mailto:abperiasamy@gmail.com" target="_blank">abperiasamy@gmail.com</a>, <a href="mailto:johnmark@redhat.com" target="_blank">johnmark@redhat.com</a><br>


Cc: Buddhike Kurera &lt;<a href="mailto:bckurera@fedoraproject.org" target="_blank">bckurera@fedoraproject.org</a>&gt;<br><br><br><div dir="ltr"><div>Dear mentors,</div><div><br></div><div>I&#39;m a student willing to apply for the <span>GSOC</span> project &quot;<b>Implement a Cassandra/<span>NoSQL</span> Connector or Translator for <span>GlusterFS</span></b>&quot;.</div>



<div>I have contacted with Mr Walker before, he hasn&#39;t reply yet.</div><div>As I&#39;m now writing my proposal, I have some questions about this project.</div><div>Would you kindly help me solving my questions? Thanks very much!</div>



<div><br></div><div>My questions is as follows:</div><div><br></div><div>(1) As I understand it, the project is to write a storage translator for <span>GlusterFS</span>, so that <span>GlusterFS</span> can use Cassandra as its <span>backend</span> storage.</div>



<div>One of the benefits is that legacy applications which are incompatible with <span>NoSQL</span> can now store key-value pairs into Cassandra indirectly.</div><div>Am I right?</div><div>
<br></div><div>(2) Since the users will only store key-value pairs as a file into our system, they may not use directory, file attribute and extended file attribute, do we need to provide fops to support these features?</div>



<div>If we do, then as for the directory, I find it not very difficult to support it, since directory can map to the super column and column family in Cassandra.</div><div><br></div><div>That&#39;s all my questions. Thanks for your time!</div>



<div><br></div><div>I&#39;m still designing and writing my proposal, I will post to your all as soon as I finish.</div><div><br></div><div>Best regards,</div><div><span>Peidong</span></div><div><div>
<div><br></div><div><br></div><br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Jilin <span>Xpd</span></b> <span dir="ltr">&lt;<span>jilinxpd</span>@<a href="http://gmail.com" target="_blank">gmail.com</a>&gt;</span><br>



Date: 2013/4/22<br>Subject: [<span>GSoC</span>] Implement a Cassandra/<span>NoSQL</span> Connector or Translator for <span>GlusterFS</span><br>To: <span>johnmark</span>@<span>redhat</span>.com<br>
<br><br><div dir="ltr"><div><div><div><div>Hi, Mr Walker,<br><br></div>I&#39;m <span><span>Peidong</span></span> <span><span>Xie</span></span>, a third year master student from Institute of Software, Chinese Academy of Sciences.<br>




<br>Sorry to communicate with you so late, I want to express my interest in the idea &quot;<b>Implement a Cassandra/<span><span>NoSQL</span></span> Connector or Translator for <span><span>GlusterFS</span></span></b> &quot;.<br>






<br></div><span></span>I have read the documents in the <span><span>GlusterFS</span> </span>website, from where I got the knowledge of <span><span>GlusterFS</span> </span>architecture and the way of writing translators.<span></span><br>



<span>Also, I roughly read the code of <span>posix</span> translator and <span>bdb</span> translator, and figured out the skeleton of a storage translator.<br>
<br>I noticed that <span>GlusterFS</span> had <span>bdb</span> as one of its storage 
<span>backends</span>, but it&#39;s obsoleted. To implement a Cassandra translator for </span><span><span><span>Glusterfs</span></span>, I think the </span><span><span><span><span>bdb</span> </span>translator </span>is a good reference.<br>



Cassandra doesn&#39;t provide native interface for C, there is a C++ client (<span>libQtCassandra</span>) which involves 3rd party libraries, so I think it&#39;s better to use raw Thrift API in <span>Glusterfs</span>.<br>




</span><br></div>I have participated in some projects, most of my work is related with file system:<br>
<br>(1) In 2011, I together with another student, developed a shared <span><span>fs</span></span> based on FUSE, it&#39;s used to store 
<span><span>libvirt</span></span> checkpoint file and image file, then multiple <span><span>VMs</span></span> could 
read/write a checkpoint or image  simultaneously. The key idea is 
parting the whole file into small blocks and cache them in memory, so that <span><span>VMs</span></span> 
could share the file blocks. COW is used to make sure a <span><span>VM&#39;s</span></span> write 
won&#39;t  influence others.<br><br></div>(2) During last year&#39;s <span><span>GSoC</span></span>, I made the <span><span>smbfs</span></span>(<span><span>CIFS</span></span> client) in <span><span>illumos</span></span> support <span><span>mmap</span></span>. Firstly, I implemented <span><span>mmap</span></span> with block i/o, the main work it to implement the <span><span>VFS</span></span> interfaces, such as <span><span>smbfs</span></span>_<span><span>mmap</span></span>, <span><span>smbfs</span></span>_<span><span>getpage</span></span>, <span><span>smbfsputpage</span></span>. Secondly, I add page cache support to file i/o, mainly modified <span><span>smbfs</span></span>_read, <span><span>smbfs</span></span>_write. With <span><span>mmap</span></span>, <span><span>smbfs</span></span> could cache file in memory and reduce the i/o request over the wire, so the efficiency of i/o increases.<br>





<br>(3) In last year, I spent some time porting <span>ecryptfs</span>-<span>utils</span> to <span>RedFlag</span> Linux, making it work with <span>ecryptfs</span>, to support encrypted home directory. <br>
<br>Currently, I concentrate on the storage issues in big data. I have done study on some distributed systems such as <span>hdfs</span>, <span>hbase</span>, <span>mongodb</span>, <span>cassandra</span>, and storage engines such as <span>bdb</span> and <span>leveldb</span>.<br>




<br>I hope my project experience and background knowledge could help in  &quot;Implement a Cassandra/<span><span>NoSQL</span></span> Connector or Translator for <span><span>GlusterFS</span></span> &quot;.<br>
I haven&#39;t finished my proposal yet, I will finish it in one or two days.<br>
<br><br>Best regards,<br><span>Peidong</span><br><br></div>
</div></div></div></div>
</div></div></div></div></div></div></div></div></div></div></div></div>