I'm currently working on a hybrid approach which dynamically switches 
between first-fit to best-fit and vice-versa. With this new allocator 
you could choose to always do best-fit if your workload requires 
something like that. You should see this in Opensolaris in the next month.

Thanks,
George

Jeff Bonwick wrote:
> Yes.
>
> The ZFS block allocator has three independent layers: device selection,
> metaslab selection (within the chosen device), and block selection
> (within the chosen metaslab).
>
> Device selection is currently round-robin to provide dynamic striping,
> with weighting for load balance.  Many other policies are possible.
>
> Metaslab selection is based on the metaslab's weight, as computed by
> metaslab_weight().  This considers the recording zone, locality, and
> other factors.  Again, the weight function could literally be anything.
>
> Finally, block selection is determined by the space map ops vector.
> We currently have just one (a modified first-fit allocator), but we
> have a couple of new ones in the works.  It should be straightforward
> to test-drive your own using metaslab_ff_alloc() as an example.
> (The current first-fit allocator is just 70 lines of code.)
>
> Jeff
>
> On Mon, Mar 23, 2009 at 01:25:12PM -0700, David Dew wrote:
>   
>> Hello,  looking to see if it is possible to change the allocation strategy 
>> to a "best-fit" or "fill, spill" model.  In looking into the current code 
>> and blog entries, there seems to have been some of this flexibility in mind. 
>>  My current thoughts are this should be attempted in metaslab.c in the 
>> metaslab_alloc_dva function, but curious if anyone else has attempted this.
>>
>> Thanks
>> -- 
>> This message posted from opensolaris.org
>> _______________________________________________
>> zfs-code mailing list
>> zfs-code at opensolaris.org
>> http://mail.opensolaris.org/mailman/listinfo/zfs-code
>>     
> _______________________________________________
> zfs-code mailing list
> zfs-code at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/zfs-code
>   


Reply via email to