<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Vimal,<br>
    &nbsp;&nbsp;&nbsp; I have a simple suggestion.&nbsp; I think it would be great to first
    test FS-Cache with the NFS and Samba servers in GlusterFS.&nbsp; I think
    just proving these technologies work&nbsp; well together without any
    issues would be great start. I am not sure if this information is
    already available with GlusterFS specifically, but it still would be
    great to gain this experience.<br>
    &nbsp;&nbsp;&nbsp; Once you have enough experience with FS-Cache and standard
    protocols for GlusterFS, then you can battle FUSE.&nbsp; <br>
    <br>
    Just my $0.02. Either way it should be fun and I look forward to
    your results :-).<br>
    <br>
    - Luis<br>
    <br>
    <div class="moz-cite-prefix">On 09/03/2014 03:25 AM, Vimal A R
      wrote:<br>
    </div>
    <blockquote
      cite="mid:1409729157.13152.YahooMailNeo@web194003.mail.sg3.yahoo.com"
      type="cite">
      <div style="color:#000; background-color:#fff;
        font-family:Helvetica Neue-Light, Helvetica Neue Light,
        Helvetica Neue, Helvetica, Arial, Lucida Grande,
        Sans-Serif;font-size:8pt">
        <div><span>David / Dan / Anand,</span></div>
        <div style="color: rgb(0, 0, 0); font-size: 10.6667px;
          font-family: Helvetica Neue-Light,Helvetica Neue
          Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif;
          background-color: transparent; font-style: normal;"><br>
          <span></span></div>
        <div style="color: rgb(0, 0, 0); font-size: 10.6667px;
          font-family: Helvetica Neue-Light,Helvetica Neue
          Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif;
          background-color: transparent; font-style: normal;"><span>Thank
            you for all the suggestions. I will make a note of the
            points, and will get back here if I have anything to report
            or doubts.</span></div>
        <div style="color: rgb(0, 0, 0); font-size: 10.6667px;
          font-family: Helvetica Neue-Light,Helvetica Neue
          Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif;
          background-color: transparent; font-style: normal;"><br>
          <span></span></div>
        <div style="color: rgb(0, 0, 0); font-size: 10.6667px;
          font-family: Helvetica Neue-Light,Helvetica Neue
          Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif;
          background-color: transparent; font-style: normal;"><span>Thanks
            a lot,</span></div>
        <div style="color: rgb(0, 0, 0); font-size: 10.6667px;
          font-family: Helvetica Neue-Light,Helvetica Neue
          Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif;
          background-color: transparent; font-style: normal;"><br>
          <span></span></div>
        <div style="color: rgb(0, 0, 0); font-size: 10.6667px;
          font-family: Helvetica Neue-Light,Helvetica Neue
          Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif;
          background-color: transparent; font-style: normal;"><span>Vimal<br>
          </span></div>
        <div class="qtdSeparateBR"><br>
          <br>
        </div>
        <div style="display: block;" class="yahoo_quoted">
          <div style="font-family: Helvetica Neue-Light, Helvetica Neue
            Light, Helvetica Neue, Helvetica, Arial, Lucida Grande,
            Sans-Serif; font-size: 8pt;">
            <div style="font-family: times new roman, new york, times,
              serif; font-size: 12pt;">
              <div dir="ltr"> <font size="2" face="Arial"> On Tuesday,
                  2 September 2014 8:50 PM, Anand Avati
                  <a class="moz-txt-link-rfc2396E" href="mailto:avati@gluster.org">&lt;avati@gluster.org&gt;</a> wrote:<br>
                </font> </div>
              <br>
              <br>
              <div class="y_msg_container">
                <div id="yiv9695472571">
                  <div>
                    <div dir="ltr"><br clear="none">
                      <div class="yiv9695472571gmail_extra"><br
                          clear="none">
                        <br clear="none">
                        <div class="yiv9695472571gmail_quote">On Mon,
                          Sep 1, 2014 at 6:07 AM, Vimal A R <span
                            dir="ltr">&lt;<a moz-do-not-send="true"
                              rel="nofollow" shape="rect"
                              ymailto="mailto:arvimal@yahoo.in"
                              target="_blank"
                              href="mailto:arvimal@yahoo.in">arvimal@yahoo.in</a>&gt;</span>
                          wrote:<br clear="none">
                          <blockquote class="yiv9695472571gmail_quote"
                            style="margin:0 0 0 .8ex;border-left:1px
                            #ccc solid;padding-left:1ex;">Hello
                            fuse-devel / fs-cache / gluster-devel lists,<br
                              clear="none">
                            <br clear="none">
                            I would like to propose the idea of
                            implementing FS-Cache support in the fuse
                            kernel module, which I am planning to do as
                            part of my UG university course. This
                            proposal is by no means final, since I have
                            just started to look into this.<br
                              clear="none">
                            <br clear="none">
                            There are several user-space filesystems
                            which are based on the FUSE kernel module.
                            As of now, if I understand correct, the only
                            networked filesystems having FS-Cache
                            support are NFS and AFS.<br clear="none">
                            <br clear="none">
                            Implementing support hooks for fs-cache in
                            the fuse module would provide networked
                            filesystems such as GlusterFS the benefit
                            of&nbsp; a client-side caching mechanism, which
                            should decrease the access times.<br
                              clear="none">
                          </blockquote>
                          <div>
                            <br clear="none">
                          </div>
                          <div>If you are planning to test this with
                            GlusterFS, note that one of the first
                            challenges would be to have persistent
                            filehandles in FUSE. While GlusterFS has a
                            notion of a persistent handle (GFID, 128bit)
                            which is constant across clients and
                            remounts, the FUSE kernel module is
                            presented a transient LONG (64/32 bit) which
                            is specific to the mount instance (actually,
                            the address of the userspace inode_t within
                            glusterfs process - allows for constant time
                            filehandle resolution).</div>
                          <div><br clear="none">
                          </div>
                          <div>This would be a challenge with any FUSE
                            based filesystem which has persistent
                            filehandles larger than 64bit.</div>
                          <div><br clear="none">
                          </div>
                          <div>Thanks</div>
                          <div class="yiv9695472571yqt8000248471"
                            id="yiv9695472571yqtfd18423">
                            <div><br clear="none">
                            </div>
                            <div>&nbsp;</div>
                            <blockquote class="yiv9695472571gmail_quote"
                              style="margin:0 0 0 .8ex;border-left:1px
                              #ccc solid;padding-left:1ex;">
                              When enabled, FS-Cache would maintain a
                              virtual indexing tree to cache the data or
                              object-types per network FS. Indices in
                              the tree are used by FS-Cache to find
                              objects faster. The tree or index
                              structure under the main network FS index
                              depends on the filesystem. Cookies are
                              used to represent the indices, the pages
                              etc..<br clear="none">
                              <br clear="none">
                              The tree structure would be as following:<br
                                clear="none">
                              <br clear="none">
                              a) The virtual index tree maintained by
                              fs-cache would look like:<br clear="none">
                              <br clear="none">
                              * FS-Cache master index -&gt; The
                              network-filesystem indice (NFS/AFS etc..)
                              -&gt; per-share indices -&gt; File-handle
                              indices -&gt; Page indices<br clear="none">
                              <br clear="none">
                              b) In case of FUSE-based filesystems, the
                              tree would be similar to :<br clear="none">
                              <br clear="none">
                              * FS-Cache master index -&gt; FUSE indice
                              -&gt; Per FS indices -&gt; file-handle
                              indices -&gt; page indices.<br
                                clear="none">
                              <br clear="none">
                              c) In case of FUSE based filesystems as
                              GlusterFS, the tree would as :<br
                                clear="none">
                              <br clear="none">
                              * FS-Cache master index -&gt; FUSE indice
                              (fuse.glusterfs) -&gt; GlusterFS volume ID
                              (a UUID exists for each volume) - &gt;
                              GlusterFS file-handle indices (based on
                              the GFID of a file) -&gt; page indices.<br
                                clear="none">
                              <br clear="none">
                              The idea is to enable FUSE to work with
                              the FS-Cache network filesystem API, which
                              is documented at '<a
                                moz-do-not-send="true" rel="nofollow"
                                shape="rect" target="_blank"
href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/caching/netfs-api.txt">https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/caching/netfs-api.txt</a>'.<br
                                clear="none">
                              <br clear="none">
                              The implementation of FS-Cache support in
                              NFS can be taken as a guideline to
                              understand and start off.<br clear="none">
                              <br clear="none">
                              I will reply to this mail with any other
                              updates that would come up whilst pursuing
                              this further. I request any sort of
                              feedback/suggestions, ideas, any pitfalls
                              etc.. that can help in taking this
                              further.<br clear="none">
                              <br clear="none">
                              Thank you,<br clear="none">
                              <br clear="none">
                              Vimal<br clear="none">
                              <br clear="none">
                              References:<br clear="none">
                              * <a moz-do-not-send="true"
                                rel="nofollow" shape="rect"
                                target="_blank"
href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/caching/fscache.txt">https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/caching/fscache.txt</a><br
                                clear="none">
                              * <a moz-do-not-send="true"
                                rel="nofollow" shape="rect"
                                target="_blank"
href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/caching/netfs-api.txt">https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/caching/netfs-api.txt</a><br
                                clear="none">
                              * <a moz-do-not-send="true"
                                rel="nofollow" shape="rect"
                                target="_blank"
href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/caching/object.txt">https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/caching/object.txt</a><br
                                clear="none">
                              * <a moz-do-not-send="true"
                                rel="nofollow" shape="rect"
                                target="_blank"
                                href="http://people.redhat.com/dhowells/fscache/FS-Cache.pdf">http://people.redhat.com/dhowells/fscache/FS-Cache.pdf</a><br
                                clear="none">
                              * <a moz-do-not-send="true"
                                rel="nofollow" shape="rect"
                                target="_blank"
                                href="http://people.redhat.com/steved/fscache/docs/HOWTO.txt">http://people.redhat.com/steved/fscache/docs/HOWTO.txt</a><br
                                clear="none">
                              * <a moz-do-not-send="true"
                                rel="nofollow" shape="rect"
                                target="_blank"
                                href="https://en.wikipedia.org/wiki/CacheFS">https://en.wikipedia.org/wiki/CacheFS</a><br
                                clear="none">
                              * <a moz-do-not-send="true"
                                rel="nofollow" shape="rect"
                                target="_blank"
                                href="https://lwn.net/Articles/160122/">https://lwn.net/Articles/160122/</a><br
                                clear="none">
                              * <a moz-do-not-send="true"
                                rel="nofollow" shape="rect"
                                target="_blank"
                                href="http://www.linux-mag.com/id/7378/">http://www.linux-mag.com/id/7378/</a><br
                                clear="none">
_______________________________________________<br clear="none">
                              Gluster-devel mailing list<br clear="none">
                              <a moz-do-not-send="true" rel="nofollow"
                                shape="rect"
                                ymailto="mailto:Gluster-devel@gluster.org"
                                target="_blank"
                                href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a><br
                                clear="none">
                              <a moz-do-not-send="true" rel="nofollow"
                                shape="rect" target="_blank"
                                href="http://supercolony.gluster.org/mailman/listinfo/gluster-devel">http://supercolony.gluster.org/mailman/listinfo/gluster-devel</a><br
                                clear="none">
                            </blockquote>
                          </div>
                        </div>
                        <div class="yiv9695472571yqt8000248471"
                          id="yiv9695472571yqtfd68760"><br clear="none">
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
                <br>
                <br>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Gluster-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a>
<a class="moz-txt-link-freetext" href="http://supercolony.gluster.org/mailman/listinfo/gluster-devel">http://supercolony.gluster.org/mailman/listinfo/gluster-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>