On Oct 6, 2006, at 1:48 PM, Julian Martin Kunkel wrote:

Hi,
The server-settable-dist would be implemented to store the indices
for the IO servers in the params field of the PVFS_sys_dist
structure.  I used server indices, because the PINT_dist_* interfaces
allow for that (through the PINT_request_file_data struct), but its a
bit ugly and probably confusing to the user.  We could change that
though, and use something like server aliases or hostnames, passing
them through to the distribution parameters instead of indices.  This
would require a change to the distribution method calls, and the
I see what you mean, but that is certainly more efford and not useful for the majority of the users. I think new functionality like the setting of the hosts can be tested easily with the hint mechanisms and once they are used
more frequently during calls the interfaces can adapt it...
If the parameters are stored in the dist parameters like you suggest that will
be a problem for the migration and changed dataservers.

Really? It seems like knowing what the actual distribution is before you migrate allows you to make informed decisions about how to migrate. I guess this is mostly an implementation details argument, so it doesn't matter too much. You guys are the ones that are going to be playing with this so I don't mind leaving it up to you.

Also it will not
allow to set the servers for all distributions...

Yeah I can't imagine wanting to ever do that. It would mean passing in a distribution different from the default simple-stripe, as well as a hint saying you want a specific set of servers in the same call. Seems sort of yucky to me. I'd rather have all the information about the distribution in the distribution. You're even able to use the distribution field in the directory hints structure to specify per-directory IO server lists. Not that you would ever want to do that either...


Right, I don't like the idea of 'overriding' a distribution's
behavior with a hint.  Conceptually it seems like the distribution
should take care of this, and if it doesn't, we should fix it so it
does.
I agree completely with that one :)
Also, the server list hint gets a little ugly across sysint calls,
since the list doesn't actually get stored anywhere for that file
(does it?).  With the distribution, we only have to specify it once
at creation time, instead of passing it along to all future IO calls
on that file.
It is not necessary to store it explicitly, even with the hint it has to be specified only during the creation like you propose. Then it chooses the datafile servers depending on the names, create dfiles only on those and sets the datafile_array for the metafile later according to that list. Thus the information is stored outside of the distribution. This is very useful for my
migration and also works on all distributions.

To come back to the hint struct, I would prefer this one:
typedef struct
{
        char * type; /* null terminated */
        char * hint; /* null terminated */
} PVFS_hint;

I do not see the usefulness of letting the user specify a non null terminated hint, users/researchers propably will use something like that to cast an
arbitrary structure into the hint field, which is problematic for
compatibilty with other architectures.

I'm assuming that only well-known hints (the ones you've defined in your internal enum) get encoded and sent to the server. Do we want to require all hints to be ascii?

-sam


Thanks,
Julian
_______________________________________________
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


_______________________________________________
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to