[SAGA-RG] FW: ISN spec

antony.wilson at stfc.ac.uk antony.wilson at stfc.ac.uk
Fri Mar 18 10:02:53 CDT 2011


Hi Andre

More changes made

> 
> Hi Antony,
> 
> thanks to you, too, for the detailed replies! :-)  Some comments
> below....
> 
> 
> >>  - the classes do not inherit the saga::async interface, and thus
> will
> >> not have asynchronous operations.  Is that on purpose, or an
> >> oversight?
> >
> > Again this is to remain consistent with the SD spec
> 
> Again, that point makes certainly sense, but may again point to an
> oversight in the SD spec.  What is the rationale behind that decision?
>  All other packages support remote operations, as it basically does
> not carry any ballast on implementation side (once you have
> implemented a way to do remote ops, its relatively easy to apply that
> to all calls), and async operations seem very useful in distributed
> applications?

I believe a the time it was considered that call to sd would be relatively fast. 
Do you have a use case for making use of sd in an asynchronous manner?

> 
> 
> >>  - You do not have TimeOut, PermissionDenied,
> >> Authorization/Authentication etc exceptions.  I am unclear about the
> >> underlying protocol (and the API should not care), but are you sure
> >> those error modes do not (ever) apply to the calls?
> >>
> >>
> >>  - some calls have no exceptions whatsoever - are you sure they will
> >> *always* succeed? :-)
> >
> > Added to constructor
> >
> > get_data and list_related_entity_names
> > the data has already been loaded and parsed as a result of the
> constructor so will always succeed
> 
> Well, you assume that your implementation fetches all data on the
> c'tor, and does no extra queries later on.  But is that semantically
> prescribed by the API?  I can't see that in the current spec - I think
> a stateless client could be implemented according to that API spec.
> 
> IFF you prescribe such a cache (and thus client state), what is it's
> scope, and its lifetime? Infinite may be a valid lifetime value I
> guess, but I doubt one would cache related entities of related
> entities?
> 


By the nature of our implementation these make no sense but I accept that 
They may be relevant to other implementations

get_data() - added NoSucsess and Timeout exceptions
list_related_entity_names() - added NoSucsess and Timeout exceptions


> While checking again: get_related_entities(): it is not well specified
> when BadParameter is thrown.   The filter being ill-formed is obvious
> - but what happens on an related_name parameter which does not exist?
> Would a DoesNotExist exception possibly be a better match?
> 

get_related_entities(related_name, filter) -added DoesNotExist exception and a note

> 
> > exceptions Timeout to get_related_entities
> > these calls should return objects that you are authorized to see
> 
> Are no race conditions possible between list_related_entity_names and
> get_related_entities (name)?  Like, could an entry name returned by
> the first call disappear in the backend database before the second
> call gets called?

No, the entity names returned from list_related_entity_names are those defined in the glue schema, if they change then we need a new model

> 
> > 
> Yes, this makes sense.
> 
> 
> Best, Andre.
-- 
Scanned by iCritical.


More information about the saga-rg mailing list