Proposals for VOSpace (multiple targets)

Dave Morris dave.morris at metagrid.co.uk
Thu Jun 17 06:30:46 CEST 2021


Hi Sonia,

You raised several good suggestions in your email. To avoid confusion 
I'll reply to each one in a separate email thread.

On 2021-06-11 13:31, Zorba, Sonia wrote:
> 3. Allow to specify multiple target nodes (instead of exactly one 
> target
> node) for transfer operations. This is useful if the user desires to 
> select
> a subset of files inside a folder instead of the whole folder.

This works in your specific case because your staging transfer protocol 
handles multiple files. If we added support for multiple target nodes in 
the standard, we would need to define how this would work for all the 
other transfer protocols.

Specifically, what does this mean?

     <vos:target>vos://..../file-one</vos:target>
     <vos:target>vos://..../file-two</vos:target>
     <vos:direction>pullFromVoSpace</vos:direction>
     <vos:protocol uri="ivo://ivoa.net/vospace/core#httpget"/>

Concatenating the content of the two files into one http stream is 
probably not what was intended.

The standard allows the service to offer multiple protocol endpoints for 
a single transfer. If we added support for multiple targets, then we 
would need to define how to link the different targets to the different 
endpoints.

     <vos:transfer xmlns:vos="http://www.ivoa.net/xml/VOSpace/v2.0" 
version="2.1">
         ....
         <vos:target>vos://..../file-one</vos:target>
         <vos:target>vos://..../file-two</vos:target>
         ....
         <vos:protocol uri="ivo://ivoa.net/vospace/core#httpget">
             <!--+
                 | Would this get one or both targets?
                 | If only one, how do we identify which one?
                 +-->
             <vos:endpoint>http://..../Wahb9Elu</vos:endpoint>
         </vos:protocol>
         <vos:protocol uri="ivo://ivoa.net/vospace/core#httpget">
             <!--+
                 | Would this get one or both targets?
                 | If only one, how do we identify which one?
                 +-->
             <vos:endpoint>http://..../ruphoh4B</vos:endpoint>
         </vos:protocol>
     </vos:transfer>

If we added support for multiple targets, would this include targets 
from different locations? If not, then we would need to define how we 
would prevent them.

     <vos:targets>
         <!--+
             | This is a target in the CADC VOSpace.
             +-->
         <vos:target>vos://CADC/..../file-one</vos:target>
         <!--+
             | This is a target in the INAF VOSpace.
             +-->
         <vos:target>vos://INAF/..../file-two</vos:target>
         ....
         <vos:protocol uri="ivo://ivoa.net/vospace/core#httpget">
             <!--+
                 | Would this get data from both spaces?
                 +-->
             <vos:endpoint>http://..../cie2AiD8</vos:endpoint>
         </vos:protocol>

     </vos:targets>

As it stands I think this raises too many complications.

There is perhaps a simpler solution using the existing standard.

* Create a container node.
* Use links to add the intended targets to the container.
* Apply the staging transfer to the container node.

I think this achieves the same goal, of transferring multiple targets in 
a single transfer, in a way that is understandable to both generic 
VOSpace clients and to human users, without requiring a change to the 
standard.

Cheers,
-- Dave

--------
Dave Morris
Research Software Engineer
Wide Field Astronomy Unit
Institute for Astronomy
University of Edinburgh
--------



More information about the grid mailing list