linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Theodore Tso <tytso@mit.edu>
Cc: linux-ext4@vger.kernel.org
Subject: Re: Enabling h-trees too early?
Date: Thu, 20 Sep 2007 15:33:50 +0200	[thread overview]
Message-ID: <20070920133350.GH2689@duck.suse.cz> (raw)
In-Reply-To: <20070919182450.GF25497@thunk.org>

On Wed 19-09-07 14:24:50, Theodore Tso wrote:
> On Wed, Sep 19, 2007 at 05:07:15PM +0200, Jan Kara wrote:
> > 
> >   I was just wondering: Currently we start to build h-tree in a directory
> > already when the size of directory exceeds one block. But honestly, it does
> > not seem to make much sence to use this feature until the directory is much
> > larger (I'd say at least 16 or 32 KB). It actually slows down some
> > operations like deleting the whole directory, etc. So what is the reason
> > for starting building the tree so early? Just the simplicity of building it
> > when the directory is just one block large?
> 
> How much is it slowing down operations such as rm -rf?  For a small
> directory (< 32k), I would assume that the difference would be
> relatively small.  What sort of differences have you measured, and is
> this a common case problem?
  So for example deleting kernel tree on my computer takes ~14 seconds with
h-trees and less than 9 without them. Also doing 'cp -lr' of the kernel
tree takes 8 seconds with h-trees and 6.3s without them... So I think the
performance difference is quite measurable.

> Certainly one of the things that we could consider is for small
> directories to do an in-memory sort of all of the directory entries at
> opendir() time, and keeping that list until it is closed.  We can't do
> this for really big directories, but we could easily do it for
> directories under 32k or 64k.
  Umm, yes. That would be probably feasible. But converting to htrees only
when directories grow larger would avoid the problem also. It also does not
seem *that* hard but maybe I miss some nasty details...

								Honza
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

  reply	other threads:[~2007-09-20 13:12 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-19 15:07 Enabling h-trees too early? Jan Kara
2007-09-19 17:02 ` Andreas Dilger
2007-09-19 18:24 ` Theodore Tso
2007-09-20 13:33   ` Jan Kara [this message]
2007-09-20 14:28     ` Theodore Tso
2007-09-20 14:58       ` Jan Kara
2007-09-20 15:14         ` Theodore Tso
2007-09-20 16:19           ` Jan Kara
2007-09-20 17:02             ` Theodore Tso
2007-09-21 13:49               ` Jan Kara
2007-09-21  9:02   ` Andi Kleen
2007-09-21 11:45     ` Theodore Tso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070920133350.GH2689@duck.suse.cz \
    --to=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).