[Lustre-devel] loadgen improvements

Alexey Lyashkov alexey.lyashkov at clusterstor.com
Tue Dec 8 22:57:10 PST 2009


On Tue, 2009-12-08 at 23:35 -0700, Andreas Dilger wrote:
> On 2009-12-08, at 22:07, Alexey Lyashkov wrote:
> > This can be something similar as
> >>
> >     pattern $name $pool_name $operation [$stripe_size [$stripe_count]]
> >
> > where
> > name - is pattern name
> > pool_name - is name of OST pools assigned to this pattern
> > operation - is one of READ or WRITE.
> > stripe_size - if set, workload need to setup LOV and add linkage  
> > between
> > LOV and OSC targets, and separate single operation to stripes.
> > stripe_count - if set, workload should be use for only part of OST  
> > pool
> > to each echo object.
> 
> Please do not use positional parameters.  That makes it nearly  
> impossible to change the input format in the future, or to skip some  
> fields and leave them as defaults.  This needs to use getopt() and  
> named parameters:
> 
>   --pool=pool_name, --stripe_size=N,  --stripe_count=N
This possible, but unlikely. because need will be save current pool
name, instead have parsed as single command.

And I don't have plan to rewrite loadgen to use getopt, instead of
current Parser() function which is used in lctl, lfs, and other.
But i agree about avoid position depended parameters.

How about this style
>>> pool $name { targets:"OST1, OST2" }
and
>>> pattern $pat { stripe_count:X stripe_size:Y block_size:Z };
and 
>>> clients $pattern { count:XX pattern: pat shared }
?


-- 
Alexey Lyashkov <alexey.lyashkov at clusterstor.com>
ClusterStor




More information about the lustre-devel mailing list