diff options
Diffstat (limited to 'doc/html/issues.html')
-rw-r--r-- | doc/html/issues.html | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/doc/html/issues.html b/doc/html/issues.html new file mode 100644 index 0000000..3acafe7 --- /dev/null +++ b/doc/html/issues.html @@ -0,0 +1,191 @@ + + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>Known Issues — S3QL 1.0.1 documentation</title> + + <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '', + VERSION: '1.0.1', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <link rel="author" title="About these documents" href="about.html" /> + <link rel="top" title="S3QL 1.0.1 documentation" href="index.html" /> + <link rel="next" title="Manpages" href="man/index.html" /> + <link rel="prev" title="Tips & Tricks" href="tips.html" /> + </head> + <body> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="man/index.html" title="Manpages" + accesskey="N">next</a></li> + <li class="right" > + <a href="tips.html" title="Tips & Tricks" + accesskey="P">previous</a> |</li> + <li><a href="index.html">S3QL 1.0.1 documentation</a> »</li> + </ul> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="about.html">About S3QL</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li> +<li class="toctree-l1"><a class="reference internal" href="backends.html">Storage Backends</a></li> +<li class="toctree-l1"><a class="reference internal" href="mkfs.html">File System Creation</a></li> +<li class="toctree-l1"><a class="reference internal" href="adm.html">Managing Buckets</a></li> +<li class="toctree-l1"><a class="reference internal" href="mount.html">Mounting</a></li> +<li class="toctree-l1"><a class="reference internal" href="special.html">Advanced S3QL Features</a></li> +<li class="toctree-l1"><a class="reference internal" href="umount.html">Unmounting</a></li> +<li class="toctree-l1"><a class="reference internal" href="fsck.html">Checking for Errors</a></li> +<li class="toctree-l1"><a class="reference internal" href="contrib.html">Contributed Programs</a></li> +<li class="toctree-l1"><a class="reference internal" href="tips.html">Tips & Tricks</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="">Known Issues</a></li> +<li class="toctree-l1"><a class="reference internal" href="man/index.html">Manpages</a></li> +<li class="toctree-l1"><a class="reference internal" href="resources.html">Further Resources / Getting Help</a></li> +</ul> + + + <div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" size="18" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms. + </p> + </div> + <script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="known-issues"> +<h1>Known Issues<a class="headerlink" href="#known-issues" title="Permalink to this headline">ΒΆ</a></h1> +<ul> +<li><p class="first">S3QL is rather slow when an application tries to write data in +unreasonably small chunks. If a 1 MB file is copied in chunks of 1 +KB, this will take more than 10 times as long as when it’s copied +with the (recommended) chunk size of 128 KB.</p> +<p>This is a limitation of the FUSE library (which does not yet support +write caching) which will hopefully be addressed in some future FUSE +version.</p> +<p>Most applications, including e.g. GNU <tt class=" docutils literal"><span class="pre">cp</span></tt> and <tt class=" docutils literal"><span class="pre">rsync</span></tt>, use +reasonably large buffers and are therefore not affected by this +problem and perform very efficient on S3QL file systems.</p> +<p>However, if you encounter unexpectedly slow performance with a +specific program, this might be due to the program using very small +write buffers. Although this is not really a bug in the program, +it might be worth to ask the program’s authors for help.</p> +</li> +<li><p class="first">S3QL always updates file and directory access times as if the <tt class="docutils literal"><span class="pre">relatime</span></tt> +mount option has been specified: the access time (“atime”) is only updated +if it is currently earlier than either the status change time +(“ctime”) or modification time (“mtime”).</p> +</li> +<li><p class="first">S3QL directories always have an <tt class=" docutils literal"><span class="pre">st_nlink</span></tt> value of 1. This may confuse +programs that rely on directories having <tt class=" docutils literal"><span class="pre">st_nlink</span></tt> values of <em>(2 + +number of sub directories)</em>.</p> +<p>Note that this is not a bug in S3QL. Including sub directories in +the <tt class=" docutils literal"><span class="pre">st_nlink</span></tt> value is a Unix convention, but by no means a +requirement. If an application blindly relies on this convention +being followed, then this is a bug in the application.</p> +<p>A prominent example are early versions of GNU find, which required +the <tt class=" docutils literal"><span class="pre">--noleaf</span></tt> option to work correctly on S3QL file systems. This +bug has already been fixed in recent find versions.</p> +</li> +<li><p class="first">In theory, S3QL is not fully compatible with NFS. Since S3QL does +not support <em>inode generation numbers</em>, NFS clients may (once again, +in theory) accidentally read or write the wrong file in the +following situation:</p> +<ol class="arabic simple"> +<li>An S3QL file system is exported over NFS</li> +<li>NFS client 1 opens a file A</li> +<li>Another NFS client 2 (or the server itself) deletes file A (without +client 1 knowing about this)</li> +<li>A new file B is created by either of the clients or the server</li> +<li>NFS client 1 tries to read or write file A (which has actually already been deleted).</li> +</ol> +<p>In this situation it is possible that NFS client 1 actually writes +or reads the newly created file B instead. The chances of this are 1 +to (2^32 - <em>n</em>) where <em>n</em> is the total number of directory entries +in the S3QL file system (as displayed by <tt class=" docutils literal"><span class="pre">s3qlstat</span></tt>).</p> +<p>Luckily enough, as long as you have less than about 2 thousand +million directory entries (2^31), the chances for this are totally +irrelevant and you don’t have to worry about it.</p> +</li> +<li><p class="first">The <tt class=" docutils literal"><span class="pre">umount</span></tt> and <tt class=" docutils literal"><span class="pre">fusermount</span> <span class="pre">-u</span></tt> commands will <em>not</em> block until all +data has been uploaded to the backend. (this is a FUSE limitation +that will hopefully be removed in the future, see <a class="reference external" href="http://code.google.com/p/s3ql/issues/detail?id=159">issue 159</a>). If you use +either command to unmount an S3QL file system, you have to take care +to explicitly wait for the <tt class=" docutils literal"><span class="pre">mount.s3ql</span></tt> process to terminate before +you shut down or restart the system. Therefore it is generally not a +good idea to mount an S3QL file system in <tt class=" docutils literal"><span class="pre">/etc/fstab</span></tt> (you should +use a dedicated init script instead).</p> +</li> +<li><p class="first">S3QL relies on the backends not to run out of space. This is a given +for big storage providers like Amazon S3, but you may stumble upon +this if you store buckets e.g. on a small sftp server.</p> +<p>If there is no space left in the backend, attempts to write more +data into the S3QL file system will fail and the file system will be +in an inconsistent state and require a file system check (and you +should make sure to make space available in the backend before +running the check).</p> +<p>Unfortunately, there is no way to handle insufficient space in the +backend without leaving the file system inconsistent. Since +S3QL first writes data into the cache, it can no longer return an +error when it later turns out that the cache can not be committed to +the backend.</p> +</li> +</ul> +</div> + + + </div> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="man/index.html" title="Manpages" + >next</a></li> + <li class="right" > + <a href="tips.html" title="Tips & Tricks" + >previous</a> |</li> + <li><a href="index.html">S3QL 1.0.1 documentation</a> »</li> + </ul> + </div> + <div class="footer"> + © Copyright 2008-2011, Nikolaus Rath. + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1pre. + </div> + </body> +</html>
\ No newline at end of file |