From: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
To: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Cc: linux-kernel@vger.kernel.org
Subject: Re: New filesystem for Linux
Date: Fri, 3 Nov 2006 15:53:29 +0100 [thread overview]
Message-ID: <20061103145329.GE11947@wohnheim.fh-wedel.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0611031509500.27698@artax.karlin.mff.cuni.cz>
On Fri, 3 November 2006 15:19:09 +0100, Mikulas Patocka wrote:
>
> >>Really it can batch any number of modifications into one transaction
> >>(unless fsync or sync is called). Transaction is closed only on
> >>fsync/sync, if 2 minutes pass (can be adjusted) or when the disk runs out
> >>of space.
> >
> >Interesting. Let me pick an example and see where we're going from
> >there. You have four directories, A, B, C and D, none of which is the
> >parent of another. Two cross-directory renames happen:
> >$ mv A/foo B/
> >$ mv C/bar D/
> >
> >This will cause four modifications, one to each of the directories. I
> >would have assumed that the modifications to A and B receive one
> >transaction number n, C and D get a different one, n+1 if nothing else
> >is going on in between.
>
> They most likely receive the same transaction (this is not like journaling
> transaction --- new transactions are issued only on conditions above).
That means one transaction in your terminology contains many
transactions in my terminology, which explains a bit of confusion.
> They may be written in any order (that's some improvement over
> journaling) by buffer thread.
>
> And when you sync, with one write of memory_cct to disk, you make old
> entries permanently invalid and new entries permanently valid.
Ok, I seem to understand it now. Quite interesting.
> If the machine crashes before sync (and some of directory sectors were
> written and some not), new entries will always be considered invalid, and
> old entries always valid, because new crash count will be used and crash
> count table at old crash count index will never be modified.
So the only overflow you have to fear is the 16-bit cc overflow. Once
that hits your filesystem is end-of-life and cannot be written to
anymore.
Has it ever occurred to you how similar your approach is to the
venerable sprite lfs? Lfs syncs by writing a "checkpoint", which
contains quite a bit of information. You sync by just writing a
single number. But in the end, both designs have a lot of
non-committed data already written to disk which only becomes valid
once the final (checkpoint|transaction count) is written.
And considering that writing several kB of contiguous data to disk is
nearly free, compared to the initial seek, both commit operations
should take about the same time.
So which, if I may ask, are the advantages of your design over sprite
lfs?
http://citeseer.ist.psu.edu/rosenblum91design.html
Jörn
--
ticks = jiffies;
while (ticks == jiffies);
ticks = jiffies;
-- /usr/src/linux/init/main.c
next prev parent reply other threads:[~2006-11-03 14:53 UTC|newest]
Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-02 21:52 Mikulas Patocka
2006-11-02 22:32 ` Gabriel C
2006-11-03 1:22 ` Mikulas Patocka
2006-11-03 1:41 ` Andrew Morton
2006-11-03 17:14 ` Oleg Verych
2006-11-03 17:09 ` Mikulas Patocka
2006-11-03 17:36 ` Oleg Verych
2006-11-03 18:14 ` Mikulas Patocka
2006-11-03 19:08 ` Adrian Bunk
2006-11-03 19:32 ` Oleg Verych
2006-11-03 19:00 ` Alan Cox
2006-11-03 19:14 ` Andi Kleen
2006-11-03 2:09 ` Gabriel C
2006-11-03 8:26 ` Jan Engelhardt
2006-11-03 11:52 ` Mikulas Patocka
2006-11-03 11:59 ` Mikulas Patocka
2006-11-03 12:50 ` Jan Engelhardt
2006-11-03 18:48 ` Mikulas Patocka
2006-11-03 21:51 ` Jan Engelhardt
2006-11-03 11:47 ` Mikulas Patocka
2006-11-02 22:53 ` Eric Dumazet
2006-11-03 1:28 ` Mikulas Patocka
2006-11-03 1:43 ` Andrew Morton
2006-11-04 18:40 ` Mikulas Patocka
2006-11-04 19:07 ` Eric Dumazet
2006-11-04 19:39 ` Tomasz Torcz
2006-11-05 1:58 ` Alan Cox
2006-11-05 2:09 ` Patrick McFarland
2006-11-05 13:03 ` Maurizio Lombardi
2006-11-05 20:16 ` H. Peter Anvin
2006-11-02 22:54 ` Grzegorz Kulewski
2006-11-02 23:10 ` Eric Dumazet
2006-11-02 23:19 ` Mikulas Patocka
2006-11-02 23:29 ` Grzegorz Kulewski
2006-11-03 1:34 ` Mikulas Patocka
2006-11-03 20:30 ` Christoph Lameter
2006-11-04 18:46 ` Mikulas Patocka
2006-11-05 12:02 ` Theodore Tso
2006-11-03 22:00 ` Oleg Verych
2006-11-03 22:42 ` Mikulas Patocka
2006-11-03 0:57 ` Nigel Cunningham
2006-11-03 13:05 ` Ric Wheeler
2006-11-06 2:42 ` Phillip Susi
2006-11-04 19:59 ` Albert Cahalan
2006-11-04 21:01 ` Jan-Benedict Glaw
2006-11-05 16:37 ` Albert Cahalan
2006-11-04 23:38 ` Mikulas Patocka
2006-11-04 23:46 ` Kyle Moffett
2006-11-05 20:26 ` H. Peter Anvin
2006-11-05 21:27 ` Rene Herman
2006-11-05 21:51 ` H. Peter Anvin
2006-11-06 0:36 ` Rene Herman
2006-11-05 21:49 ` Pavel Machek
2006-11-05 1:57 ` Alan Cox
2006-11-05 11:14 ` James Courtier-Dutton
2006-11-05 11:27 ` Brad Campbell
2006-11-05 12:37 ` Alan Cox
2006-11-06 2:48 ` Phillip Susi
2006-11-05 16:22 ` Albert Cahalan
2006-11-05 17:18 ` Mikulas Patocka
2006-11-05 18:14 ` Alan Cox
2006-11-05 18:18 ` Mikulas Patocka
2006-11-05 19:14 ` Alan Cox
2006-11-02 23:15 ` Linus Torvalds
2006-11-03 20:02 ` Paul E. McKenney
2006-11-02 23:41 ` Andi Kleen
2006-11-03 1:45 ` Mikulas Patocka
2006-11-03 13:47 ` Nikita Danilov
2006-11-03 14:39 ` Mikulas Patocka
2006-11-02 23:59 ` Jörn Engel
2006-11-03 1:19 ` Mikulas Patocka
2006-11-03 10:19 ` Jörn Engel
2006-11-03 11:56 ` Mikulas Patocka
2006-11-03 12:21 ` Jörn Engel
2006-11-03 13:31 ` Mikulas Patocka
2006-11-03 13:48 ` Jörn Engel
2006-11-03 14:19 ` Mikulas Patocka
2006-11-03 14:53 ` Jörn Engel [this message]
2006-11-03 19:01 ` Mikulas Patocka
2006-11-04 10:46 ` Jörn Engel
2006-11-04 18:50 ` Mikulas Patocka
2006-11-06 21:19 ` Jörn Engel
2006-11-03 19:51 ` Adrian Bunk
2006-11-03 19:00 ` dean gaudet
2006-11-04 10:53 ` Jörn Engel
2006-11-04 11:13 ` dean gaudet
2006-11-04 20:07 ` Jörn Engel
2006-11-04 18:52 ` Mikulas Patocka
2006-11-04 18:56 ` Grzegorz Kulewski
2006-11-04 19:18 ` Mikulas Patocka
2006-11-04 17:37 ` Gautham R Shenoy
2006-11-04 18:27 ` Eric Dumazet
2006-11-05 22:33 ` Paul E. McKenney
2006-11-05 0:52 ` Linus Torvalds
2006-11-05 4:14 ` Mikulas Patocka
2006-11-05 8:34 ` Willy Tarreau
2006-11-05 11:31 ` Jan Engelhardt
2006-11-05 14:48 ` Bruno Cesar Ribas
2006-11-06 17:40 Al Boldi
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=20061103145329.GE11947@wohnheim.fh-wedel.de \
--to=joern@wohnheim.fh-wedel.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mikulas@artax.karlin.mff.cuni.cz \
/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®