From: Paul Clements <paul.clements@steeleye.com>
To: Neil Brown <neilb@cse.unsw.edu.au>
Cc: jejb@steeleye.com, linux-raid@vger.kernel.org
Subject: Re: [ANNOUNCE][PATCH 2.6] md: persistent (file-backed) bitmap and async writes
Date: Tue, 10 Aug 2004 17:37:14 -0400 [thread overview]
Message-ID: <4119400A.40307@steeleye.com> (raw)
In-Reply-To: <16649.61212.310271.36561@cse.unsw.edu.au>
Neil,
I've implemented the improvements that you've suggested below, and
preliminary tests are showing some very good results!
The latest patches are available at:
http://www.parisc-linux.org/~jejb/md_bitmap/
Further details below...
Thanks,
Paul
Neil Brown wrote:
> It's looking a lot better. I can start focussing on deeper issues
> now.
>
> It really bothers me that all the updates are synchronous - that isn't
> a good approach for getting good performance.
Yes, that's quite true. In fact, in my simple write performance tests I
used to see a slowdown of around 30% with the bitmap file...now, the
difference is not even measurable! (This is with the bitmap file located
on a dedicated disk, in order to reduce disk head movement, which tends
to degrade performance).
> This is how I think it should happen:
>
> When a write request arrives for a block where the corresponding bit
> is already set on disk, continue with the request (as currently
> happens).
>
> When a write request arrives for a block where the corresponding bit
> is *not* set on disk, set the bit in ram (if not already set), queue
> the write request for later handling, and queue the bitmap block to
> be written. Also mark the queue as "plugged".
>
> When an unplug request comes, Send all queued bitmap blocks to disk,
> then wait for them all to complete, then send all queue raid write
> requests to disk.
>
> When a write request completes, decrement the corresponding
> counter but don't clear the "shadow" bit if the count hits zero.
> Instead flag the block as "might have unsynced-zeros".
>
> The write-back thread slowly walks around the bitmap looking for
> blocks which might have an unsynced zero. They are checked to see
> if they still do. If they do, the disk-bit is cleared and the
> disk-block is queued for writing.
>
>
> There might need to be a couple of refinements to this, but I think it
> is the right starting point.
I've implemented more or less what you've described above in this latest
patch.
> With this approach you wouldn't need the "bitmap_update" in r1bio_s as
> the write-back daemon doesn't have a list of things to do, but instead
> it periodically scans to see what needs to be done.
Yes, getting rid of the bitmap_update structure was a very good idea.
The code is much cleaner without that...
next prev parent reply other threads:[~2004-08-10 21:37 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-29 22:51 [ANNOUNCE][PATCH 2.6] md: persistent (file-backed) bitmap and async writes Paul Clements
2004-01-30 22:52 ` Paul Clements
2004-02-09 2:51 ` Neil Brown
2004-02-09 19:45 ` Paul Clements
2004-02-10 0:04 ` Neil Brown
2004-02-10 16:20 ` Paul Clements
2004-02-10 16:57 ` Paul Clements
2004-02-13 20:58 ` Paul Clements
2004-03-05 5:06 ` Neil Brown
2004-03-05 22:05 ` Paul Clements
2004-03-31 18:38 ` Paul Clements
2004-04-28 18:10 ` Paul Clements
2004-04-28 18:53 ` Peter T. Breuer
2004-04-29 8:41 ` Neil Brown
2004-05-04 20:08 ` Paul Clements
2004-06-08 20:53 ` Paul Clements
2004-06-08 22:47 ` Neil Brown
2004-06-14 23:39 ` Neil Brown
2004-06-14 23:59 ` James Bottomley
2004-06-15 6:27 ` Neil Brown
2004-06-17 17:57 ` Paul Clements
2004-06-18 20:48 ` Paul Clements
2004-06-23 21:48 ` Paul Clements
2004-06-23 21:50 ` Paul Clements
2004-07-06 14:52 ` Paul Clements
[not found] ` <40F7E50F.2040308@steeleye.com>
[not found] ` <16649.61212.310271.36561@cse.unsw.edu.au>
2004-08-10 21:37 ` Paul Clements [this message]
2004-08-13 3:04 ` Neil Brown
2004-09-21 3:28 ` Paul Clements
2004-09-21 19:19 ` Paul Clements
2004-10-12 2:15 ` Neil Brown
2004-10-12 14:06 ` Paul Clements
2004-10-12 21:16 ` Paul Clements
2004-11-10 0:37 ` md: persistent (file-backed) bitmap Neil Brown
2004-11-10 18:28 ` Paul Clements
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=4119400A.40307@steeleye.com \
--to=paul.clements@steeleye.com \
--cc=jejb@steeleye.com \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@cse.unsw.edu.au \
/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).