<?xml version="1.0" encoding="UTF-8" standalone="yes"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us"><id>https://blog.pgxn.org/tags/mirrors/</id><title>Mirrors</title><updated>2010-09-08T23:41:00Z</updated><link rel="self" type="application/atom+xml" href="https://blog.pgxn.org/tags/mirrors/feed.xml"/><link rel="alternate" type="text/html" href="https://blog.pgxn.org/tags/mirrors/"/><author><name>The PGXN Maintainers</name></author><generator uri="https://gohugo.io/" version="0.167.0">Hugo</generator><entry><id>https://blog.pgxn.org/post/1088721089</id><title type="html">On Legacy File Systems</title><link rel="alternate" type="text/html" href="https://blog.pgxn.org/2010/legacy-file-systems/"/><updated>2026-10-07T16:13:48Z</updated><published>2010-09-08T23:41:00Z</published><author><name>David E. Wheeler</name></author><category scheme="https://blog.pgxn.org/tags" term="uri-templates" label="URI Templates"/><category scheme="https://blog.pgxn.org/tags" term="file-systems" label="File Systems"/><category scheme="https://blog.pgxn.org/tags" term="hashing" label="Hashing"/><category scheme="https://blog.pgxn.org/tags" term="names" label="Names"/><category scheme="https://blog.pgxn.org/tags" term="mirrors" label="Mirrors"/><summary type="html"><![CDATA[<p>When we last looked at the <a href="https://blog.pgxn.org/post/988613682/restful-directory">organization of the mirror</a>, I was pretty happy
with the design except for one thing: The use of the letter hashing variables
in the URI templates. It&rsquo;s just ugly and, damnit, is it really necessary
anymore? I mean, sure, I had to <a href="https://github.com/bricoleurs/bricolage/commit/37c3ac85006503bde4240f642a315ff4c3fb425b">work around this issue in Bricolage</a> back in
2005, but on modern file systems like zfs and ext3, does it really matter
anymore?</p>
<p>I was chatting about this with <a href="https://schwern.dreamhosters.com/">Schwern</a> just now, and he thought it just
didn&rsquo;t matter anymore. So I asked my fellow <a href="https://pgexperts.com/">PGX</a> associate <a href="https://www.facebook.com/frosty996">Jeff Frost</a> about
this, and he said, &ldquo;Used to be anytime you went above 1000 entries in one
directory, things would start to slow down. Certainly reiserfs, xfs, jfs, and
zfs don&rsquo;t suffer that issue.&rdquo; But what about ext3?</p>]]></summary><content type="html" xml:base="https://blog.pgxn.org/" xml:space="preserve"><![CDATA[<p>When we last looked at the <a href="https://blog.pgxn.org/post/988613682/restful-directory">organization of the mirror</a>, I was pretty happy
with the design except for one thing: The use of the letter hashing variables
in the URI templates. It&rsquo;s just ugly and, damnit, is it really necessary
anymore? I mean, sure, I had to <a href="https://github.com/bricoleurs/bricolage/commit/37c3ac85006503bde4240f642a315ff4c3fb425b">work around this issue in Bricolage</a> back in
2005, but on modern file systems like zfs and ext3, does it really matter
anymore?</p>
<p>I was chatting about this with <a href="https://schwern.dreamhosters.com/">Schwern</a> just now, and he thought it just
didn&rsquo;t matter anymore. So I asked my fellow <a href="https://pgexperts.com/">PGX</a> associate <a href="https://www.facebook.com/frosty996">Jeff Frost</a> about
this, and he said, &ldquo;Used to be anytime you went above 1000 entries in one
directory, things would start to slow down. Certainly reiserfs, xfs, jfs, and
zfs don&rsquo;t suffer that issue.&rdquo; But what about ext3?</p>
<p>I happen to have a box with ext3, so I tested it. Here&rsquo;s what I found. To stat
one file among 20,000, <code>time</code> says:</p>
<pre tabindex="0"><code>real    0m0.005s
user    0m0.000s
sys     0m0.000s
</code></pre><p>Not bad. And on file among 200?</p>
<pre tabindex="0"><code>real    0m0.009s
user    0m0.000s
sys     0m0.010s
</code></pre><p>Well, you can&rsquo;t get much closer than that. What about subdirectories? To stat
a file inside one of 20,000 subdirectories, <code>time</code> tells me:</p>
<pre tabindex="0"><code>real    0m0.015s
user    0m0.010s
sys     0m0.000s
</code></pre><p>And a file inside one of 200 subdirectories:</p>
<pre tabindex="0"><code>real    0m0.005s
user    0m0.000s
sys     0m0.000s
</code></pre><p>Well, I can live with that. I suppose there are some file systems out there
that still have this problem, but you know what? I&rsquo;m not going to worry about
them. It&rsquo;s thinking too far in advance anyway (if PGXN has this kind of
scaling problem we&rsquo;ll be lucky!), and the farther out we get, the less of a
problem it is.</p>
<p>So you know what? I&rsquo;m not going to use the hashing of extension, distribution,
and owner names. Let the file systems worry about that performance, not me.</p>
]]></content></entry></feed>