Re: linear writes to raid5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Saturday April 8, alex@xxxxxxxxxxxxx wrote:
> 
> Good day all,
> 
> is there a way to batch explicitely write requests raid5 issues?
> for example, there is a raid5 built from 3 disks with chunk=64K.
> one types dd if=/dev/zero of=/dev/md0 bs=128k count=1 and 128K
> bio gets into the raid5. raid5 processes the request, does xor
> for parity stripe, then issues 2 64KB requests down to lower level.
> 
> is it even possible to implement? if so, how complex?
> 
> I suppose we could introduce a context which holds last
> non-issued bio and instead of generic_make_request() in 
> handle_stripe() try to merge current request to the previous
> one from the context? how does this sound to you?

The raid5 code attempts to do this already, though I'm not sure how
successful it is.  I think it is fairly successful, but not completely
successful. 

There is a trade-off that raid5 has to make.  Waiting longer can mean
more blocks on the same stripe, and so less reads.  But waiting longer
can also increase latency which might not be good.

The thing to would be to put some tracing in to find out exactly what
is happening for some sample workloads, and then see if anything can
be improved.

NeilBrown
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux