From: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
To: "Jörn Engel" <joern@logfs.org>
Cc: Adrian Hunter <ext-adrian.hunter@nokia.com>,
Jan Engelhardt <jengelh@computergmbh.de>,
LKML <linux-kernel@vger.kernel.org>,
joern@lazybastard.org
Subject: Re: UBIFS vs Logfs (was [RFC PATCH] UBIFS - new flash file system)
Date: Tue, 01 Apr 2008 08:56:45 +0300 [thread overview]
Message-ID: <47F1CE9D.4080709@nokia.com> (raw)
In-Reply-To: <47F1C78D.2050300@yandex.ru>
Jörn Engel wrote:
> Code size difference is huge. Ubi weighs some 11kloc, ubifs some 30,
> logfs some 8.
Please, lets refrain form unfair comparisons like this before logfs is
finished. Also, when you compare, please, take into account that UBI/UBIFS
has many times more commentaries in the code.
> Ubi scales linearly, as it does a large scan at init time. It is still
> reasonably fast, as it reads just a few bytes worth of header per block.
> Logfs mounts in O(1) but will currently become mindbogglingly slow when
> the filesystem nears 100% full and write are purely random. Not that
> any other flash filesystem would perform well under these conditions -
> it is the known worst case scenario.
I asked you some time ago to describe how you maintain per-eraseblock
space accounting [1]. E.g., how you select an eraseblock for garbage
collection, how do you store the accounting information.
You said you find eraseblocks by scanning. This means logfs is not
really scalable because you may spend ages before you find anything
appropriate. When the FS is almost full, yo need to scan nearly
whole flash to find an eraseblock? So if I mount a nearly full
FS, and start writing, I'll get my request handled when nearly whole
media is scanned?
UBIFS stores per-eraseblock information on the media in a B-tree, and
it also has lists of empty/dirty eraseblocks, which allow to very quickly
find the best eraseblock to garbage-collect or to write to.
[1] http://lkml.org/lkml/2007/8/8/333
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
next prev parent reply other threads:[~2008-04-01 6:01 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-27 14:55 [RFC PATCH] UBIFS - new flash file system Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 01/26] VFS: introduce writeback_inodes_sb() Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 02/26] UBIFS: add I/O sub-system Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 03/26] UBIFS: add flash scanning Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 04/26] UBIFS: add journal replay Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 05/26] UBIFS: add file-system build Artem Bityutskiy
2008-03-28 10:12 ` Andrew Morton
2008-03-28 11:04 ` Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 06/26] UBIFS: add superblock and master node Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 07/26] UBIFS: add file-system recovery Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 08/26] UBIFS: add compression support Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 09/26] UBIFS: add key helpers Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 10/26] UBIFS: add the journal Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 11/26] UBIFS: add commit functionality Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 12/26] UBIFS: add TNC implementation Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 13/26] UBIFS: add TNC commit implementation Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 14/26] UBIFS: add TNC shrinker Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 15/26] UBIFS: add LEB properties Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 16/26] UBIFS: add LEB properties tree Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 17/26] " Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 18/26] UBIFS: add LEB find subsystem Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 19/26] UBIFS: add Garbage Collector Artem Bityutskiy
2008-04-01 2:11 ` Arnd Bergmann
2008-03-27 14:55 ` [RFC PATCH 20/26] UBIFS: add VFS operations Artem Bityutskiy
2008-03-27 13:36 ` Andi Kleen
2008-03-27 13:42 ` Artem Bityutskiy
2008-04-01 12:08 ` Pekka Enberg
2008-04-01 12:42 ` Artem Bityutskiy
2008-04-01 13:12 ` Pekka Enberg
2008-04-01 14:04 ` Artem Bityutskiy
2008-04-01 15:14 ` Adrian Hunter
2008-03-27 14:55 ` [RFC PATCH 21/26] UBIFS: add budgeting Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 22/26] UBIFS: add extended attribute support Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 23/26] UBIFS: add orphans handling sub-system Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 24/26] UBIFS: add header files Artem Bityutskiy
2008-03-27 14:55 ` [RFC PATCH 25/26] UBIFS: add debugging stuff Artem Bityutskiy
2008-03-31 21:00 ` Pekka Enberg
2008-04-01 6:20 ` Artem Bityutskiy
2008-04-01 7:33 ` Pekka Enberg
2008-04-01 8:32 ` Artem Bityutskiy
2008-04-01 9:00 ` Pekka Enberg
2008-04-01 9:04 ` Artem Bityutskiy
2008-04-01 8:34 ` Adrian Hunter
2008-04-01 7:43 ` Pekka Enberg
2008-03-27 14:55 ` [RFC PATCH 26/26] UBIFS: include FS to compilation Artem Bityutskiy
2008-04-01 7:39 ` Pekka Enberg
2008-04-01 8:51 ` Artem Bityutskiy
2008-04-01 9:15 ` Pekka Enberg
2008-04-01 9:25 ` Artem Bityutskiy
2008-04-01 10:04 ` Pekka Enberg
2008-04-01 10:26 ` Artem Bityutskiy
2008-04-01 11:33 ` Pekka Enberg
2008-04-01 11:56 ` Artem Bityutskiy
2008-04-26 9:37 ` Christoph Hellwig
2008-04-28 7:10 ` Adrian Hunter
2008-04-28 9:03 ` ext Christoph Hellwig
2008-04-30 7:04 ` Adrian Hunter
2008-04-26 9:35 ` Christoph Hellwig
2008-04-28 7:09 ` Adrian Hunter
2008-04-28 9:00 ` ext Christoph Hellwig
2008-04-28 11:23 ` Adrian Hunter
2008-04-28 11:39 ` ext ext Christoph Hellwig
2008-04-28 12:25 ` Adrian Hunter
2008-04-28 13:02 ` Christoph Hellwig
2008-03-27 16:20 ` [RFC PATCH] UBIFS - new flash file system Josh Boyer
2008-03-28 6:17 ` Artem Bityutskiy
2008-03-28 6:45 ` Artem Bityutskiy
2008-03-31 12:29 ` Jan Engelhardt
2008-03-31 12:47 ` Adrian Hunter
2008-03-31 13:20 ` Jörn Engel
2008-03-31 14:00 ` Artem Bityutskiy
2008-03-31 17:17 ` Jörn Engel
2008-03-31 20:49 ` Pekka Enberg
2008-03-31 21:21 ` Jörn Engel
2008-04-01 6:00 ` Artem Bityutskiy
2008-04-01 5:26 ` UBIFS vs Logfs (was [RFC PATCH] UBIFS - new flash file system) Artem Bityutskiy
2008-04-01 5:28 ` Artem Bityutskiy
2008-04-01 5:56 ` Artem Bityutskiy [this message]
2008-04-01 9:25 ` Jörn Engel
2008-04-01 9:39 ` Artem Bityutskiy
2008-04-01 10:51 ` Jörn Engel
2008-04-01 11:17 ` Artem Bityutskiy
2008-04-01 9:19 ` Jörn Engel
2008-04-01 9:46 ` Artem Bityutskiy
2008-04-01 11:16 ` Jörn Engel
2008-03-31 13:40 ` [RFC PATCH] UBIFS - new flash file system Jörn Engel
2008-04-01 21:01 ` Matthieu CASTET
2008-04-03 7:07 ` Artem Bityutskiy
2008-04-18 9:05 ` Thomas Gleixner
-- strict thread matches above, loose matches on Subject: below --
2008-04-01 8:02 UBIFS vs Logfs (was [RFC PATCH] UBIFS - new flash file system) Tomasz Chmielewski
2008-04-01 8:45 ` Artem Bityutskiy
2008-04-01 9:03 ` Jörn Engel
2008-04-01 9:09 ` Artem Bityutskiy
2008-04-01 9:31 ` Jörn Engel
2008-04-01 9:39 ` Tomasz Chmielewski
2008-04-01 9:57 ` Artem Bityutskiy
2008-04-02 14:17 ` Tomasz Chmielewski
2008-04-02 14:22 ` Jörn Engel
2008-04-01 11:06 ` Andi Kleen
2008-04-01 11:23 ` Artem Bityutskiy
2008-04-01 16:27 ` H. Peter Anvin
2008-04-01 21:26 ` Willy Tarreau
2008-04-02 4:47 ` Artem Bityutskiy
2008-04-02 6:25 ` Willy Tarreau
2008-04-02 7:17 ` Artem Bityutskiy
2008-04-09 21:09 ` Pavel Machek
2008-04-09 21:32 ` Jörn Engel
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=47F1CE9D.4080709@nokia.com \
--to=artem.bityutskiy@nokia.com \
--cc=ext-adrian.hunter@nokia.com \
--cc=jengelh@computergmbh.de \
--cc=joern@lazybastard.org \
--cc=joern@logfs.org \
--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;
as well as URLs for NNTP newsgroup(s).