[Pvfs2-developers] [PATCH] modify twod-stripe's default params
and add some documentation
Sam Lang
slang at mcs.anl.gov
Fri Jul 4 14:35:05 EDT 2008
Kyle,
Lets step back a second. What's the actual bug that motivated this?
My impression from your email was that a default value of num_groups=2
didn't work in a single server environment, only because when it tried
to divide num_servers (1) by num_groups (2) it got 0.
That's completely separate from _setting_ the num_groups parameter and
providing the checks to make sure it doesn't get set to something
invalid. Instead I'm arguing for checks inside the distribution code
itself, where we do have knowledge of the number of servers (the
filesystem layout) and have to choose which server to send data. We
need checks there as well, and a default behavior when we get invalid
values. Does that make sense?
-sam
On Jul 1, 2008, at 8:26 PM, Kyle Schochenmaier wrote:
> The place where this gets checked does not have knowledge of the
> layout of the filesystem,j it just sets parameters for future files, I
> believe. The checks are in place to make sure we dont supply invalid
> values - values <= 0 inside set_param(). The problem I see with this
> on first glance at the code is that set_param() gets called 3 times
> whenever you set a fattr() and it parses the string you give it, once
> for each type of dist_param. A particular call into set_param that
> would set the num_groups would be out of scope of the call that sets
> the strip_factor so I dont see an easy way inside dist-twod-stripe.c
> to accomplish this?
>
> I'd be willing to look into it further if anyone has any fancy tricks
> to accomplish this.
>
> Kyle
>
> On Tue, Jul 1, 2008 at 5:16 PM, Sam Lang <slang at mcs.anl.gov> wrote:
>>
>> On Jul 1, 2008, at 4:15 PM, Kyle Schochenmaier wrote:
>>
>>> We should use simple stripe in that case, which is why i have it
>>> defaulted to it now, someone was playing with twod-dist today and
>>> noticed that it defaults to having 2 groups, which causes errors
>>> when
>>> you run it on only a single server.
>>
>> That seems like kind of a bug. Can we just add the appropriate
>> check that
>> fixes the error?
>> -sam
>>
>>> I would much rather have the
>>> defaults allow the distribution to work on *any* setup, rather than
>>> just a n>1 servers setup.
>>>
>>> Its not particularly useful, but I belive it is the right thing to
>>> do,
>>> maybe I'm wrong?
>>> (the original default settings are worthless for my applications
>>> so I
>>> have to change them anyhow)
>>>
>>> Kyle
>>>
>>> On Tue, Jul 1, 2008 at 4:04 PM, Sam Lang <slang at mcs.anl.gov> wrote:
>>>>
>>>> Kyle,
>>>>
>>>> How is this patch useful for you guys? With a single server (and
>>>> only
>>>> one
>>>> stripe), it doesn't matter what the factor and num_groups are,
>>>> does it?
>>>> It
>>>> still behaves the same as simple-stripe in that case. With
>>>> multiple
>>>> servers
>>>> setting the factor and num_groups to 1 does make the 2d
>>>> distribution act
>>>> like simple-stripe, but why not just use simple stripe in that
>>>> case?
>>>>
>>>> -sam
>>>>
>>>>
>>>> On Jul 1, 2008, at 3:19 PM, Kyle Schochenmaier wrote:
>>>>
>>>>> Patch is against cvs head, and modifies the default num_groups
>>>>> to be 1
>>>>> and the group_strip_factor = 1 so twod-stripe's defaults still
>>>>> work
>>>>> when you use it on a single-server, it will now by default
>>>>> behave the
>>>>> same as simple-stripe until the user modifies the num_groups and
>>>>> strip_factor xattrs.
>>>>>
>>>>> Also added a brief description of the definitions for the
>>>>> dist_params
>>>>> in twod-stripe.
>>>>>
>>>>> Tested fully functional on my servers.
>>>>>
>>>>> Kyle
>>>>>
>>>>>
>>>>> Index: src/io/description/dist-twod-stripe.c
>>>>> =
>>>>> ==================================================================
>>>>> RCS file: /anoncvs/pvfs2/src/io/description/dist-twod-stripe.c,v
>>>>> retrieving revision 1.5
>>>>> diff -r1.5 dist-twod-stripe.c
>>>>> 6a7,15
>>>>>>
>>>>>> /* twod-stripe will take all of the servers in the filesystem and
>>>>>> * partition them into num_groups groups. Data will then be
>>>>>> striped to
>>>>>> * each group before we move onto the next group. The
>>>>>> strip_factor will
>>>>>> * determine how many chunks of strip_size are written to each
>>>>>> server
>>>>>> * in each group before we transition to the next group.
>>>>>> * The striping on the group level is done round-robin in the same
>>>>>> * fashion as simple-stripe
>>>>>> */
>>>>>>
>>>>>
>>>>>
>>>>> Index: include/pvfs2-dist-twod-stripe.h
>>>>> =
>>>>> ==================================================================
>>>>> RCS file: /anoncvs/pvfs2/include/pvfs2-dist-twod-stripe.h,v
>>>>> retrieving revision 1.4
>>>>> diff -r1.4 pvfs2-dist-twod-stripe.h
>>>>> 17c17
>>>>> < #define PVFS_DIST_TWOD_STRIPE_DEFAULT_GROUPS 2
>>>>> ---
>>>>>>
>>>>>> #define PVFS_DIST_TWOD_STRIPE_DEFAULT_GROUPS 1
>>>>>
>>>>> 19c19
>>>>> < #define PVFS_DIST_TWOD_STRIPE_DEFAULT_FACTOR 256
>>>>> ---
>>>>>>
>>>>>> #define PVFS_DIST_TWOD_STRIPE_DEFAULT_FACTOR 1
>>>>>
>>>>>
>>>>> -
>>>>> Kyle Schochenmaier
>>>>> <twod-dist.patch>_______________________________________________
>>>>> Pvfs2-developers mailing list
>>>>> Pvfs2-developers at beowulf-underground.org
>>>>> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Kyle Schochenmaier
>>
>>
>
>
>
> --
> Kyle Schochenmaier
More information about the Pvfs2-developers
mailing list