[Pvfs2-developers] [PATCH] modify twod-stripe's default params and add some documentation

Phil Carns carns at mcs.anl.gov
Mon Jul 7 11:57:04 EDT 2008


Sam Lang wrote:
> 
> On Jul 7, 2008, at 10:24 AM, Phil Carns wrote:
> 
>> There are a couple of options for dealing with the case where 
>> num_groups > num_dfiles if we want to keep the current defaults:
>>
>> 1) Transparently reduce the num_groups within the distribution 
>> calculation.  From the user's perspective the params wouldn't change; 
>> the distribution would just automatically fall back to acting like 
>> simple stripe.  We would just need to add this to the top of a few of 
>> the dist functions:
>>
>> if(num_groups > server_ct)
>> {
>>   num_groups = server_ct;
>> }
>>
>> 2) Return an explicit error at create time.  The varstrip distribution 
>> has this behavior now; it actually prevents you from creating a file 
>> if the dfile count isn't plausible for the distribution parameters.  
>> The way to do this is to implement the get_num_dfiles() function in 
>> twod_stripe so that it can perform a safety check and return an error 
>> at create time if the user tries to use too high of a num_groups 
>> setting. On the command line you would get a generic errno (EINVAL or 
>> whatever) but we could put a descriptive message in the logs.
>>
>> Option 1) seems reasonable to me; it is a small code change, we get to 
>> keep the existing desirable default parameters, and the single server 
>> case just transparently falls back to simple stripe.
> 
> There's a third option, and what I've been proposing -- instead of 
> changing the actual parameter, adjust the value during the 
> logical_to_physical calculation.
> -sam

No, that's actually the same thing I was proposing, I just didn't 
realize that you meant the same thing until just now :)  The code 
snippet above would not change the parameter in the directory hints. 
"num_groups" is a variable within the logical_to_physical_offset() function.

-Phil


More information about the Pvfs2-developers mailing list