N-way mirror read speedup in zfsonlinux

Alexander Motin mav at FreeBSD.org
Thu Aug 15 09:10:11 UTC 2013


On 15.08.2013 11:23, Alexander Motin wrote:
> On 14.08.2013 16:50, Steven Hartland wrote:
>> So based on mav's comments I've created a new version of the load
>> balanced
>> patch which takes into account the last IO's locality on the disk.
>
> I like it. Thank you!
>
> Just a few comments:
> 1) I guess your change to scsi_da.c will send "GEOM::rotating" attribute
> change every time disk is probed (including each open) even when nothing
> really changed. It is not fatal, but absolutely unneeded overhead.
> 2) You are always giving full locality bonus to SSDs. It means that HDDs
> quite likely won't be used even for sequential read operations until
> SSDs are really busy, while that is the only point where HDDs still
> could if not compete but at least be useful. Surely it very much depend
> on specific devices characteristics, but I would try to give SSD half
> (or may be 3/4), so that precisely positioned HDD could still do
> something it can.
> 3) bde@ would argue about too long sysctl comments, while for me at
> least first is quite tangled.
> 4) I don't very like idea of expanding struct disk every time
> (especially not at the end). While that is probably easier then
> alternatives, now we have d_getattr method specifically to avoid that.

One more minor thought: I guess with the proposed code all requests 
without locality bonus in case of equal load will go to the first disk. 
Probably not a big problem, but may be adding small (less then load of 
1) random factor (like one from offset in original code) could not be 
bad from drives wearing point.

-- 
Alexander Motin


More information about the zfs-devel mailing list