Hmm, that's interesting.
Of course, the issue of interface and internal rep are different. We
can allow the interface to pass generic hints but pass the distribution
related parameters through the SM as before. For that matter, the
proposed server array really shouldn't be part of that distribution data
- distributions don't actually have anything to do with what servers the
data goes to. As non-intuitive as that sounds its the way we do things
currently. The number and selection of servers is irrelevant to the
distribution - it only needs to know how many servers there are and
which one it is currently processing.
But this issue of the client not having access to server identities is
even more troubling.
As an asside - what is the application for this anyway? I've never
encountered any such application, so I'm not clear why we think it is so
important.
Walt
Sam Lang wrote:
On Oct 9, 2006, at 12:05 PM, Julian Martin Kunkel wrote:
Hi,
So I think we're mostly trying to work out what our API should really
be, whether we should extend the distro functionality vs. going totally
to hints, and if we go to hints what that API should look like, right?
probably the distribution needs a function which initializes/sets the
internal
parameter depending on the string. Maybe another one which fancy
writes the
parameters to a char buffer.
I'm down with that. For the record, my concern over strings isn't in
our processing them - its the users having to muck with them -
especially when passing numeric data. I just worry about lots of
mallocing/string copying blech when all you really want to do is set
the
stripe size to the variable x.
I think extra mallocing is not really necessary only once to generate
the
string which can be generated with snprintf the string could look
like
"ioservercount=2;ioservers=node1,node4;dist=simplestripe;dist_stripesi
ze=65536"
I'd rather just leave the PINT_dist_set_param function the way it is
and have some other methods in the PINT_dist_methods structure as well:
get_num_dfiles
get_server_array
This way the create sm (and the rest of the pvfs client code) is able
to keep treating the distribution hint as an opaque object.
We don't actually expose the server list (from the config file) to the
client at all, and I think we have good reasons for doing this,
especially when we talk about server migration and failover where
servers may possibly come and go over time (dynamic configs). The
client is required to 'guess' the appropriate server list via some
out-of-band mechanism.
If we want to specify the list of servers through the system
interfaces, we'll probably have to provide some more mgmt functions.
The client doesn't have direct access to the list of servers, since we
don't export any config functions. There's a
PVFS_mgmt_get_server_array call, but it returns an array of
PVFS_BMI_addr_t types. That addr_t is an opaque reference (uint64_t)
to the server. So we would need to provide an external wrapper around
BMI_addr_rev_lookup. Alternatively, we can just write a management
interface that give us a list of aliases.
-sam
whereas options without the prefix "dist_" may be processed by code
common to
all distributions.
I do not see the benefit of putting the responsibility of server
mapping to
the distribution right now (maybe for raid ?). I like outsourced/ common
processing which is done in the create sm right now.
I personally don't think the environment variable approach is all that
useful for PVFS. I believe this because there are only a *very* limited
number of cases where it would apply cleanly (e.g. pvfs2-cp) that there
isn't another mechanism for doing the same thing (e.g. MPI-IO hints). I
think that MPI-IO hints should have some mechanism along those lines,
and I wouldn't mind discussing that separately, but that's a different
topic.
Ok I think its true that it might not be that useful for the common
case and
that MPI hints should be used.
I found it useful for testing and experimenting with PVFS and I think
its no
big deal if environment processing will not be added to CVS. I will
add the
functionality fitting to the new hint interface in my branch.
I don't think that I actually might be useful for implementing the
new hint
mechanism because I think you have to revise the code anyway (and it
won't be
so much work I guess, either), but that is no big deal.
Julian
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
--
Dr. Walter B. Ligon III
Associate Professor
ECE Department
Clemson University
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers