From: Andreas Gruenbacher <agruen@suse.de>
To: Andreas Dilger <adilger@clusterfs.com>
Cc: Alex Tomas <bzzz@tmi.comex.ru>,
linux-kernel@vger.kernel.org, ext2-devel@lists.sourceforge.net,
Andrew Morton <akpm@digeo.com>
Subject: Re: [Ext2-devel] [RFC] fast EA for ext3
Date: Thu, 22 May 2003 01:33:56 +0200 (CEST) [thread overview]
Message-ID: <Pine.LNX.4.53.0305220050250.17302@Chaos.suse.de> (raw)
In-Reply-To: <20030518165718.B11651@schatzie.adilger.int>
On Sun, 18 May 2003, Andreas Dilger wrote:
> On May 18, 2003 17:04 +0000, Alex Tomas wrote:
> > this patch implements possibility to store EA into inode body
> > which may be larger 128 bytes in 2.5 kernel.
>
> What Alex didn't mention was the reason why we developed this patch in the
> first place - speed.
The patch looks very good. A few issues come to mind:
- What's the status of the other fixed fields in the large inodes? Is
there agreement on adding exactly the fields in the patch?
- A common operation is to change an attribute's value without changing
the value's length. The current code does not optimize this case, but
it should. The patch makes this optimization a little harder.
- struct ext3_xattr_entry makes little sense in an inode. The
e_value_block and e_hash fields should go away. The e_value_size
field could be shrunk from 4 to 2 bytes. This would save 10 bytes per
attribute. The code wouldn't become a lot more messy from that.
- In-inode EA support should be configurable. I would like to choose
whether I want this feature at compile time, with as few #ifdef's as
possible.
> Storing EAs in external blocks is slow, and if you
> have a lot of inodes with external EAs it is fatal, as the EA blocks consume
> so much RAM that they force all of the inode/directory data out of cache.
The current implementation is not suitable for applications which store
unique EAs for very many inodes. Storing the EAs in the inodes is much
better, but increasing the inode size also costs space.
> Some benchmarks (from Alex):
> > environment for old EA: just mkfs'ed EXT3, inode size 128, 33000 files
> > environment for fast EA: just mkfs'ed EXT3, inode size 256, 33000 files
> >
> > old EA fast EA
> > add attributes 2m35.241s 1m4.151s (+142%)
> > dump attributes 0m28.716s 0m13.466s (+113%)
> > change attributes 2m42.108s 1m4.413s (+153%)
> > remove attributes 1m15.373s 1m3.909s (+19%)
Nice. That's probably with unique attributes per inode.
> Some minor improvements could be made, such as not storing user EAs inside
> the inode if there are system EAs that could be stored there.
I don't know which strategy will be best here. We don't have to solve this
problem now, though.
By the way, you will likely also need dynamically allocated inodes, right?
What's the status here?
Cheers,
Andreas.
------------------------------------------------------------------
Andreas Gruenbacher SuSE Linux AG
mailto:agruen@suse.de Deutschherrnstr. 15-19
http://www.suse.de/ D-90429 Nuernberg, Germany
next prev parent reply other threads:[~2003-05-21 23:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-18 17:04 Alex Tomas
2003-05-18 22:57 ` [Ext2-devel] " Andreas Dilger
2003-05-21 23:33 ` Andreas Gruenbacher [this message]
2003-05-22 4:16 ` Andreas Dilger
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=Pine.LNX.4.53.0305220050250.17302@Chaos.suse.de \
--to=agruen@suse.de \
--cc=adilger@clusterfs.com \
--cc=akpm@digeo.com \
--cc=bzzz@tmi.comex.ru \
--cc=ext2-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
/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
all inboxes | Powered by JetHome®