[Gluster-devel] Fragment size in Systematic erasure code

Xavier Hernandez xhernandez at datalab.es
Mon Mar 14 11:55:53 UTC 2016


Hi Ashish,

On 14/03/16 12:31, Ashish Pandey wrote:
> Hi Xavi,
>
> I think for Systematic erasure coded volume you are going to take fragment size of 512 Bytes.
> Will there be any CLI option to configure this block size?
> We were having a discussion and Manoj was suggesting to have this option which might improve performance for some workload.
> For example- If we can configure it to 8K, all the read can be served only from one brick in case a file size is less than 8K.

I already considered to use a configurable fragment size, and I plan to 
have it. However the benefits of larger block sizes are not so clear. 
Having a fragment size of 8KB in a 4+2 configuration will use a stripe 
of 32KB. Any write smaller, or not aligned, or not multiple of this 
value will need a read-modify-write cycle, causing a performance 
degradation for some workloads. It's also slower to encode/decode a 
block of 32KB because it might not fully fit into processor caches, 
making the computation slower.

On the other side, a small read on multiple bricks should, in theory, be 
executed in parallel, not causing a noticeable performance drop.

Anyway many of these things depend on the workload, so having a 
configurable fragment size will give enough control to choose the best 
solution for each environment.

Xavi


More information about the Gluster-devel mailing list