Hi,
Yes, most of the optimizations for partial reads are part of that pull request – it is referenced in the design document.
There is one further enhancement we would like to make which is to reduce the size of the reads to each shard – the pull request currently reads the whole chunk for any shard that needs to be read. This is not an issue with the current default chunk size which
is 4K, but if you use a larger chunk size such as 256K then this means that short client reads will read excess data and then discard it.
Currently there are many reasons why using a small chunk size is a good idea, but once both partial reads and partial writes have been implemented performance can be improved further by using a larger chunk size because splitting I/Os into multiple chunks is
expensive. There’s more discussion about the chunk size and how to accommodate small sized objects without large storage overheads later in the document.
Cheers,
Bill.
bill_scales@uk.ibm.com
IBM Distinguished Engineer, IBM Storage