[Pvfs2-developers] Hint patch

Sam Lang slang at mcs.anl.gov
Sat Sep 15 11:06:19 EDT 2007


On Sep 15, 2007, at 9:56 AM, Julian Martin Kunkel wrote:

> Hi Sam,
> cool that you made the modifications ;-)
>
> I think the overall changes look good. There are only a few (minor)  
> comments
> you might consider if you like..
> I would rather avoid to store the encode & decode functions  
> explicitly in the
> PVFS_hint_s struct, because it is contained in the PINT_hint_info  
> struct as
> well. I add some comments and modifications directly to the structure:
>
Agreed.  I'll make that change.

> typedef struct PVFS_hint_s
> {
>     struct PINT_hint_info * type; /* link with the specific type */
>     char* unknown_type_name; /* used only if the type is unknown  
> otherwise the
>                                       * name is available in the  
> type array*/
>     char* value;
>     int32_t length;
>
>     int flags;
>     struct PVFS_hint_s *next;
>     /* int count; where and how do you use this value ? */

Its probably just left-over from wanting to keep track of  
transferrable hints instead of having to compute the number at encode  
time.  I can remove it.

>
> } PINT_hint;
>
> Therefore just add a dummy type for unknown hints in the  
> PINT_hint_info struct
> to cover for the encode functions:
> static const struct PINT_hint_info hint_types[] = {
>
>     {PINT_HINT_UNKNOWN
>      PINT_HINT_TRANSFER,
>      PVFS_HINT_UNKNOWN,
>      encode_func_string,
>      decode_func_string,
>      0, /* value gets automatically filled depending on the length  
> of the hint
> */
> ...
> }
>
> Maybe it would be neat to have another function:
> int PVFS_hint_add_internal(
>     PVFS_hint *hint,
>     int type, /*instead of string */
>     int length,
>     void *value)
> That one could be used internally for instance as follows:
> In the function decode_PINT_hint the function PVFS_hint_add is  
> used. I like
> this idea to support unknown hints (from the clients view) to work  
> on servers
> understanding the hint. However, for known hints this extra  
> computation could
> be avoided by using the available hint type directly. This would  
> avoid to
> look up the hint's type by the server again.
Yep, that's fine.  I'll add that.
-sam

> Also if the server might want to add a hint directly (for further  
> inter server
> communication) it could do so by using the PVFS_hint_add_internal  
> function
> itself. (I used something like this to tag special migration I/O's  
> between
> the servers)...
>
> With your scheme (with or without the modifications I propose)  
> adding new
> hints seems unproblematic. If the server does not understand the  
> hint it is
> ignored, the client encodes it as a string. A problem is only if  
> the client
> has a different order of the hints as the server.
> That is fine with me ;-)
>
> Best regards,
> Julian
>



More information about the Pvfs2-developers mailing list