[SAGA-RG] missing(?) method reporting last modification time

Sylvain Reynaud Sylvain.Reynaud at in2p3.fr
Thu Jun 4 13:04:48 CDT 2009


Andre Merzky a écrit :
> Quoting [Thilo Kielmann] (Jun 04 2009):
>   
>> Dear Sylvain,
>>
>>     
>>>>  
>>>>         
>>> I raised it at OGF23 (see slide 34 of my talk).
>>>       
>> sorry, I must have missed this within your list of modifications.
>>
>>     
>>> Our deviations from the SAGA specification are listed here
>>> http://grid.in2p3.fr/jsaga-dev/SAGA-delta.html
>>>       
>> I just had a look. This is quite a list. Would you, from your experience
>> as of today, recommend more/some/all for inclusion in a "fixed" SAGA
>> standard?
>>     
>
> Dear Sylvain, 
>
> we should have given you more detailed feedback on your list
> earlier on *blush*  Most of the items have been discussed at
> one point or the other, however.  Here is a detailed list.
> Thilo is right: we should resolve the items soonish.
>   
Dear Andre,

Thanks for this detailled feedback on our deviations from the SAGA 
specification.
Here are some answers, inline in this mail.
My proposals for a "fixed" SAGA standard will come in a separate mail.

>   AmbiguityException:  
>
>     The spec does not define if saga::exceptions can be
>     extended.  I guess legally that can only happen outside
>     the saga namespace, so, IMHO, that is a conflict.
I think the type of exception is not really a problem since users can 
catch it as a NoSuccessException, but the difference in behavior for 
authentication may break compatibility between SAGA implementations...
(see next mail)

> OTOH,
>     its closely related to the implementation semantics
>     (retry), so, to some extent, its an implementation
>     detail.  Not sure how to handle in the spec.  
>
>     BTW: 'avoid account locking' is an interesting use
>     case...
>
>
>   context.toString(): 
>   
>     Thats a language binding issue.   In C++, we also have a
>     get_string () on the URL, for example.
>   
I agree.

>
>   URL: 
>   
>     Query interpreted as adaptor parameters: thats an
>     implementation specific behaviour: SAGA does not define
>     URL semantics.  It breaks application portability though
>     I assume.
>   
Yes, I also think so.
We try to avoid using this, but some protocols require additional 
information.

>
>   FLAGS_BYPASSEXIST=4096  
>   
>     I would think this is better solved on configuration
>     level, in Java as a saga.property for example?
I don't think so because this depends on use-case, hence on user's code. 
Moreover, the user should be aware that he is changing the default behavior.

> Again,
>     that breaks portability.
>   
Yes, that's why I want to propose it for inclusion in a "fixed" SAGA 
standard (see next mail)

>   
>   additional method copyFrom(): 
>
>     I don't understand the use case for this.  How is 
>     
>      saga::file f (url_1);
>      f.copy_from  (url_2);
>     
>     different from
>     
>      saga::file tmp (url_2);
>      tmp.copy       (url_1);
>      saga::file f   (url_1);
>     
>     Is it about saving one line of code, and one temp object?
>   
No, it was for optimizing file transfer from many-to-one locations 
without managing a pool of connections. But I plan to remove this method 
and do this another way.

>
>   additional method getLastModified():
>   
>     as discussed, should make it into the spec.
>   
OK.

>
>
>   NSEntry.remove() allows !Recursive flag:
>
>     The is actually in the spec, as
>
>       saga::directory d (url);
>       d.remove (0);  // 0: empty flag set, i.e. Recursive is not set 
>
>     I think what you want is to change the semantics, from
>
>       - a ’BadParameter’ exception is thrown if the 
>         entry is a directory and the ’Recursive’ flag 
>         is not set. 
>
>       - a ’BadParameter’ exception is thrown if the 
>         entry is a *nonempty* directory and the 
>         ’Recursive’ flag is not set. 
>
>     Would that solve your use case?
>   
Yes (my use-case is: "how to implement rmdir").

>   
>   Job description JobName attribute  added
>
>     This is not in the spec.  Well, we had to draw a line
>     somewhere, and as it was optional in JSDL, and noone
>     really had a compelling use case, it was left out.  Do
>     you have applications which require that one?
>   
I was using it with "allocateResource" (see end of this mail), but I am 
not sure I will still need it in the future...

>   Job description CPUArchitecture attribute added
>
>     has been added in the spec meanwhile
>
>
>   Job description OperatingSystemType attribute added
>
>     has been added in the spec meanwhile
>   
That's not the point (see next mail).

>
>   Job description JobStartTime and JobContact attributes not supported
>
>     That is no problem.
>   
(see next mail).

>
>   job attribute 'NativeJobDescription' added
>
>     I assume that is a read-only attribute?
Yes.

> What is the use
>     case for this one?  Debugging?
>   
Yes. I don't expect it to be included in the specification.

>
>   job.sub_state metric added:
>
>     saga::job already has a metric 'job.state_detail' - what
>     is the difference?
>   
job.state_detail can not be used in a uniform way because its values 
depends on each middleware.
(see next mail)

>
>   method allocateResource added:
>
>     Is that method on job, or on the job_service?  What is
>     the semantics?
>
>     I think that this would not go into the job managament
>     in SAGA, but rather into the resource
>     discovery/management extension Thilo's group is working
>     on (within XtreemOS).  You might want to check with them
>     if their extension proposal fits your requirements...
>   
The goal was not to do resource discovery in SAGA, but to enable doing 
it outside of SAGA.
But there are ways to do that without breaking portability, and I plan 
to remove this method.

Best regards,
Sylvain



More information about the saga-rg mailing list