All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dimitrios Apostolou <jimis@gmx.net>
To: Dimitrios Apostolou <jimis@gmx.net>
Cc: Goswin von Brederlow <brederlo@informatik.uni-tuebingen.de>,
	linux-raid@vger.kernel.org
Subject: Re: RAID1 and load-balancing during read
Date: Tue, 11 Sep 2007 22:10:03 +0200	[thread overview]
Message-ID: <46E6F61B.1040001@gmx.net> (raw)
In-Reply-To: <46E6B533.2070006@gmx.net>

Dimitrios Apostolou wrote:
> Goswin von Brederlow wrote:
>> As I understand it the problem is the hardware. Reading a chunk of
>> data from a disk means that the head has to seek to the right track
>> and the disk has to spin to the right position. After that you can
>> read a full revolution of the disk worth of data sequentially.
>>
>> Now consider what happens if you read 4K per disk in stripes. The disk
>> seeks to the right track, spins to the right position and reads
>> 4k. Then it waits for 4k to rotate below the head, read 4k, waits 4k,
>> read 4k, waits 4k, .... That way both disks are busy without any gain.
> 
> I'm not sure about that. All disks have some sort of read-ahead option. 
> Usually this read-ahead option is configurable too. What if the 
> read-ahead was set to 2*chunk size (for RAID1 with 2 disks). The 
> algorithm for reading in parallel from both disks would then be:
> 
> 1st disk:
> current_pos1= read(chunk_size)
> seek(current_pos1 + chunk_size)
> 
> 2nd disk:
> seek(current_pos2+chunk_size)
> current_pos2= read(chunk_size)
> 
> 
> Of course if drive read-ahead works properly (which should be for small 
> values) the seek() functions would not really cause the drive to seek.
> 
> As for the example you mentioned I'm quite sure that reading 4K from a 
> drive and then seeking 4K forward and reading again would not result in 
> any slowdown, since most of today's IDE drives have a default read-ahead 
> of 128KB.
> 
On a second thought I realise that this doesn't work as expected... Even 
though this will not cause slowdown, it will not cause speedup either. 
It is obvious that if a drive reads sequentially with 40MB/s, it won't 
surpass that speed no matter what seeks you do. Readahead might help to 
avoid disk head seeks, but read speed just can't increase. I don't know 
what I was thinking when writing this... :-s


Thanks for your replies,
Dimitris

  reply	other threads:[~2007-09-11 20:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-10 19:29 RAID1 and load-balancing during read Dimitrios Apostolou
2007-09-10 19:35 ` Iustin Pop
2007-09-10 19:51   ` Dimitrios Apostolou
2007-09-11  3:44     ` Iustin Pop
2007-09-11 13:20       ` Goswin von Brederlow
2007-09-11 14:11         ` Neil Brown
2007-09-11 15:33         ` Dimitrios Apostolou
2007-09-11 20:10           ` Dimitrios Apostolou [this message]
2007-09-11 15:47       ` Dimitrios Apostolou
2007-09-11 16:07         ` Dimitrios Apostolou

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=46E6F61B.1040001@gmx.net \
    --to=jimis@gmx.net \
    --cc=brederlo@informatik.uni-tuebingen.de \
    --cc=linux-raid@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.