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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers





--
Kyle Schochenmaier





--
Kyle Schochenmaier

_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to