[Gluster-users] small files and cluster/stripe

Jeff Anderson-Lee jonah at eecs.berkeley.edu
Fri May 14 23:37:28 UTC 2010


On 5/14/2010 4:20 PM, Craig Carl wrote:
> Jeff -
>    I've paraphrased Tejas's response here -
>        1. There is no way to know how big a file will be until the 
> fclose() is received.
>        2. What would we do about files that change sizes across the 
> cutoff line?
>        3. We could perhaps add a size parameter to the 
> rebalance/defrag scripts we have.
>
> Would a process that redistributed the file on some sort of a schedule 
> work?
All these reasons are ones that would lead me *not* to try a 
big-file/small-file distribution scheme.  Combining a distributed 
(hash-based) offset with file striping makes much more sense to me.  It 
doesn't work well for hard links or simple rename, but it makes the rest 
simpler.

Jeff
> Craig
>
> --
> Craig Carl
> Gluster, Inc.
> Cell - (408) 829-9953 (California, USA)
> Gtalk - craig.carl at gmail.com
>
>
> ----- Original Message -----
> From: "Jeff Anderson-Lee" <jonah at eecs.berkeley.edu>
> To: "Craig Carl" <craig at gluster.com>
> Cc: gluster-users at gluster.org
> Sent: Thursday, May 13, 2010 6:39:31 PM GMT -08:00 US/Canada Pacific
> Subject: Re: [Gluster-users] small files and cluster/stripe
>
> On 5/13/2010 6:24 PM, Craig Carl wrote:
>
>     Jeff -
>         Thanks for your email, I think I've got a grasp of your
>     environment now and I understand the problem. If we create a
>     "/gluster/small_files" and a "/gluster/large_files" your users are
>     unlikely to respect distinction, plus it is a management
>     nightmare, right?
>     If you have time I'd like your help writing a feature request that
>     would implement what you need.  Something like -
>
>     Gluster should provide the option of distributing files based on
>     size to different volumes.
>     This distribution should be transparent to users.
>     This distribution only needs to happen the first time a file is
>     written.
>     The Gluster administrator should have the ability to provide a
>     file size range for each volume.
>     The different volumes could be different types; mirror, stripe,
>     mirror & distribute, etc.
>
>     What have I missed?
>
>     Craig
>
>
> That would be one solution.  I would target another that I suspecr is 
> probably simpler:
>
> Gluster should provide the option of pseudo-randomizing the 
> distribution of file stripes across volumes, so that all small files 
> do not end up on the same subvolume of a cluster/stripe.
> This distribution should be transparent to users.
> This distribution only needs to happen the first time a file is 
> written and may be based on the file name hash (a la cluster/distribute).
>
> The net behavior could be such that small files (less that the 
> block-size) would have the same data distribution pattern as they 
> would have with cluster/distribute, while larger files (greater than 
> the stripe block-size) would have their upper blocks ditributed in a 
> round-robin from that starting place.
>
> Given that the code already exists for distributing files based on 
> namehash in cluster/distribute I think this could be an easier feature 
> to add.
>
> Jeff
>



More information about the Gluster-users mailing list