From: Kailas Joshi <kailas.joshi@gmail.com>
To: tytso@mit.edu
Cc: linux-ext4@vger.kernel.org, Jan Kara <jack@suse.cz>,
Jiaying Zhang <jiayingz@google.com>
Subject: Re: Help on Implementation of EXT3 type Ordered Mode in EXT4
Date: Fri, 12 Feb 2010 08:52:15 +0530 [thread overview]
Message-ID: <38f6fb7d1002111922i4ae6131w6b5cce79344efc63@mail.gmail.com> (raw)
In-Reply-To: <20100211195624.GM739@thunk.org>
On 12 February 2010 01:26, <tytso@mit.edu> wrote:
> I've mostly given up on trying to get alloc_on_commit work, for two
> reasons.
>
> The first is that one of the reasons why you might be closing the
> transaction is if there's not enough space left in the journal. But
> if we you going to a large number of data allocations at commit time,
> there's no guaratee that there will be space in the journal for all of
> the metadata blocks that might have to be modified in order to make
> the block allocations.
Won't this get fixed by performing early reservations as mentioned in
my scheme? We are reserving required credits in the path of write
system call and these will be kept reserved until transaction commit.
So, the journal space for allocation at commit will be guaranteed.
>
> The second problem with this scheme is a performance problem; while
> you are doing handling delayed allocation blocks, you have to do this
> while the journal is still locked, using magic handles that are
> allowed to be created while the journal is locked. That adds all
> sorts of complexity, and that seems to what you are thinking about
> doing. The problem though is that while this is going on, all other
> file system activity has to be blocked. So this will cause all sorts
> of processes to become suspended waiting for the all of the allocation
> activity to complete, which may require bitmap allocation blocks to be
> read into disk, etc.
Sorry, I didn't understand why processes need to be suspended.
In my scheme, I am issuing magic handle only after locking the current
transaction. AFAIK after the transaction is locked, it can receive the
block journaling requests for already created handles(in our case, for
already reserved journal space), and the new concurrent requests for
journal_start() will go to the new current transaction. Since, the
credits for locked transaction are fixed (by means of early
reservations) we can know whether journal has enough space for the new
journal_start(). So, as long as journal has enough space available,
new processes need now be stalled.
Please correct me if this is wrong.
> The trade off for all of these problems is that it allows you to delay
> the block allocation for only 5 seconds. The question is, is this
> worth it, compared with simply mounting the file system with
> nodelalloc? It may be all of this complexity doesn't produce enough
> of a performance gain over simply using nodelalloc.
I agree. The performance gain might not be good enough compared to
'nodelalloc'. However, our goal is providing data consistency
equivalent to Journal mode at low cost. So, we are interested in
comparing performance of alloc_on_commit (and our technique) with
performance of Journal mode.
Thanks & Regards,
Kailas
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-02-12 3:22 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-04 5:45 Help on Implementation of EXT3 type Ordered Mode in EXT4 Kailas Joshi
2010-02-09 16:05 ` Jan Kara
2010-02-09 17:41 ` tytso
[not found] ` <38f6fb7d1002102301x278c3ddt153f570dd1423074@mail.gmail.com>
2010-02-11 7:32 ` Kailas Joshi
2010-02-11 19:56 ` tytso
2010-02-12 3:22 ` Kailas Joshi [this message]
2010-02-12 20:07 ` tytso
2010-02-13 8:43 ` Kailas Joshi
2010-02-15 15:00 ` Jan Kara
2010-02-16 10:10 ` Kailas Joshi
2010-02-16 13:10 ` Jan Kara
2010-02-16 14:18 ` tytso
2010-02-17 15:37 ` Kailas Joshi
[not found] ` <38f6fb7d1003182023j5513640csdc797adb49393ea0@mail.gmail.com>
2010-03-22 16:52 ` Jan Kara
2010-03-23 10:41 ` Kailas Joshi
2010-03-29 15:45 ` Jan Kara
2010-04-17 4:42 ` Kailas Joshi
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=38f6fb7d1002111922i4ae6131w6b5cce79344efc63@mail.gmail.com \
--to=kailas.joshi@gmail.com \
--cc=jack@suse.cz \
--cc=jiayingz@google.com \
--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).