[saga-rg] Re: [gridrpc-wg] Final call: GridRPC API for inclusion in SAGA 1.0
Andre Merzky
andre at merzky.net
Sun Aug 13 06:30:06 CDT 2006
Hi,
Quoting [Thilo Kielmann] (Aug 13 2006):
>
> > - The RPC spec is silent about 'when' the connection to
> > the remote server is made, on creation of the handle, or
> > on call(). We decided in other parts of the spec that,
> > for example, the constructor opens a file, or remote
> > connection. I propose to prescribe the same for RPC.
> > Does that make sense? Do we need to loosen the
> > semantics elsewhere in the spec? (IMHO not).
>
> To my personal taste, I would prefer having the accessability check
> in the constructor, enforced. However, this would contradict GFD.52
> (see above). So we should have "all useful" exceptions (see below)
> both for the constructor and the "call" method.
We should explicitely describe that this is different to
other constructors then.
> > > - constructor
> > > Purpose: inits a remote function handle
> > > Format: CONSTRUCTOR (in session session,
> > > in string funcname)
> > > Inputs: session: saga session to use
> > > funcname: name of remote method to
> > > initialize
> > > Outputs: -
>
> I suggest the following mappings of GridRPC errors to SAGA exceptions:
>
> GRPC_SERVER_NOT_FOUND IncorrectURL
> GRPC_FUNCTION_NOT_FOUND IncorrectURL
> GRPC_RPC_REFUSED AuthorizationFailed looks like the closest match
> GRPC_OTHER_ERROR_CODE NoSuccess default
>
> GRPC_NO_ERROR and GRPC_NOT_INITIALIZED are not applicable.
IncorrectURL is reserved fo non-parsable URLs, and URLs
which cannot be handled because the scheme is unsupported.
An invalid URL in the sense that the server does not exist,
or points to a non-existing function handle etc. should
cause a BadParameter exception, or a DoesNotExist exception
(latter if it fails because the described endpoint does,
well, not exist).
> > - should we add a 'cancel(in float timeout)'? Explicit
> > resource dealloction was an issue in our discussion at
> > GGF, and we agreed on cancel - is that not needed
> > anymore?
>
> I gave it a thorough (I hope ;-) read and came to the following conclusion:
>
> We have to rely on GFD.52, this means here on grpc_cancel().
> grpc_cancel is meant to cancel an asynchronous rpc call.
> The description in GFD.52 does NOT mention any remote resource de-allocation.
> This means, prescribing in SAGA some form of remote resource de-allocation
> would deviate from GridRPC and would likely not be implementable.
>
> This means, all we can do is cancel the SAGA task (possibly with timeout -1).
> And, if I understand SAGA's task cancel method correctly, it is supposed
> (or at least allowed) to "clean up resources", which I would translate to
> calling grpc_cancel underneath.
Hmm, I am somewhat confused now, as I thought (as said
earlier) that the timeout on cancel was an GridRPC
requirement. Well, nevermind then. Should we consider
removing cancel/close timeouts from the spec altogether?
Agree with the other points you made.
Cheers, Andre.
> Summary: no explicit cancel method for SAGA's RPC package
>
>
> Thilo
--
"So much time, so little to do..." -- Garfield
More information about the saga-rg
mailing list