[saga-rg] Re: comment on SAGA strawman doc.
Andre Merzky
andre at merzky.net
Tue May 31 11:22:25 CDT 2005
Dear Peter, Kalman,
many thanks for your detailed comments! We will try to
answer them all, but it will take us some time. After a
first glance, they look very useful to me!
I forward the mail to the SAGA list, for archiving and
comments.
Cheers, Andre.
Quoting [Peter Kunszt] (May 31 2005):
> Subject: comment on SAGA strawman doc.
> Date: Tue, 31 May 2005 18:08:50 +0200
> From: "Peter Kunszt" <Peter.Kunszt at cern.ch>
> To: "EGEE Middleware Engineering Management Team" <project-eu-egee-middleware-emt at cern.ch>
> Cc: "EGEE Middleware Design Team" <project-eu-egee-middleware-design at cern.ch>,
> "Kalman Kovari" <Kalman.Kovari at cern.ch>,
> <andre at merzky.net>
>
> hi all
>
> following up on our task to be interoperable with
> standards and to see how we fit into the large world
> of GGF, we have looked at the strawman SAGA API doc .
> http://wiki.cct.lsu.edu/saga/space/start/strawman-api.pdf
> we focussed on the data management side, to see whether we
> could implement these interfaces 'easily' or not.
>
> some of the comments are a bit sketchy.. glancing
> at the SAGA mailinglist, some may have been discussed already.
>
> so we have only looked at the APIs relating to data management.
>
> the good news is that it seems that with some minor exceptions it would
> be quite straightforward
> to map the SAGA API to the existing Data Management APIs of the Fireman,
> glite-io and the metadata catalog. it is not a surprise that the SAGA
> API is much more sketchy and seems at times inconsistent and incomplete
> compared with our
> APIs since they don't have a real implementation behind them yet.
>
> the only 'issue' is the introduction of a stream-based network
> API in SAGA. in our architecture / design we decided to go with the
> managed async data transfer model (FTS), not with direct synchronous
> streaming. the
> reason is obvious: we need to manage the network resource efficiently.
>
> unfortunately the SAGA doc does not motivate the interfaces to an
> extent where we would be able to deduce an 'architecture'...
> we might also argue that some interfaces (like replica location, storage
> space management,
> lifetime management, quotas, etc) are missing...
>
> cheers
> peter
>
> ps. kalman kovari [cc'd] did the actual work, i am just echoing and
> commenting
> his findings. i also cc'd andre merzky of the SAGA-WG.
>
> --------------
>
> some detailed doc comments:
>
> - The interfaces in the document have some self-inconsistencies,
> however, none of them is critical.
> We expect these will be cleaned whenever someone starts to implement
> them.
>
> - The examples are sometimes more misleading than useful...
>
> - The error handling and error semantics are not defined well enough.
> This is essential
> in order to assure proper interoperability.
>
> - There is a lack of structure in terms of interface layering.
> High level interfaces (like JobManagement) and low level interfaces
> (like
> Stream) are not distinguished, motivated, or put into context.
> E.g. why is there a need of a networkstream-level interface for a
> grid application?
>
> - Example (P18): OO structured, not like the iface. (eg. i =
> dir.getNumEntries()
> instead of dir.getNumEntries(a) ? )
>
> - Example (P29): an exact copy of Ex. 1.
>
> - Description - Streams (P62): close or destroyStream? maybe close, but
> not consistent.
>
> - General: sometimes bitwise OR-s are used for multiple options
> (Stream/ActivityType, P59), sometimes arrays of values
> (NameSpace/CopyFlags, P9). Why no convention?
>
> - Description: Stream/read: Throws: IncorrectState if stream not in
> "NotConnected" state. typo.
>
> - Description: Stream/write: Same as above. C&P.
>
> - Description: StreamServer/create,destroy: create/createStreamServer,
> destroy/destroyStreamServer?
>
> - Interface NSDir: what are the semantics of the copy method? of
> getName and getURL?
>
> -----------------
>
> some details concerning implementation mappings.
> below we mention the classes to be implemented, and their methods:
> (an 'ok' is put to methods that are trivial to be implemented using the
> existing APIs. probably just
> name and parameter translations are required in that cases)
>
>
> iface NSDir - except for copy(), everything can be implemented using the
> fireman-catalog.
>
> changeDir: clientside manipulation+validity check in the catalog.
> list: we only implement it with limits -- some default limits are
> required.
> readlink: ok.
> exists: getlfnstat+check.
> isDir: getlfnstat+check.
> isFile: getlfnstat+check.
> isLink: getlfnstat+check.
> getNumEntries: we have no efficient implementation, possible with
> readDir(), but slow.
> copy: What do they mean saying "copy"? Needs clarification.
> link: ok.
> move: ok.
> remove: unlink().
> makeDir: ok.
>
> getURL, getName: undocd. Needs to be clarified what they mean here, but
> probably only clientside manipulation.
>
> iface Directory extends NSDir - internal scheme to implement directory
> services. we already have a working catalog,
> so we only need to make an interface for it.
> getSize: fireman::getlfnstat.
> openDir: clientside consturctor+check in the catalog if name is valid.
> open: open/create a file. glite_io::open() and for creating some
> fireman::create, too.
>
> iface File - implementable through glite_io.
> read, write, seek: ok.
>
> iface LogicalDirectory extends NSDir - in the implementation scheme we
> have no difference
> between Directory and LogicalDirectory
>
> iface LogicalFile
> addLocation, removeLocation, listLocations: addReplica, removeReplica,
> listReplicas. ok.
> replicate: addReplica
>
> iface Stream, StreamServer - low level, seemingly managing network
> streams.
> [see comments above]
>
> iface Attributes - usual key/value pairs, with support for
> vectorAttributes.
>
> not looked at:
> iface Task, TaskContainer
> iface JobInfo, Job, JobService
--
+-----------------------------------------------------------------+
| Andre Merzky | phon: +31 - 20 - 598 - 7759 |
| Vrije Universiteit Amsterdam (VU) | fax : +31 - 20 - 598 - 7653 |
| Dept. of Computer Science | mail: merzky at cs.vu.nl |
| De Boelelaan 1083a | www: http://www.merzky.net |
| 1081 HV Amsterdam, Netherlands | |
+-----------------------------------------------------------------+
More information about the saga-rg
mailing list