provider staging to remote sites (was [Swift-user] Re: 3rd party transfers)

Mihael Hategan hategan at mcs.anl.gov
Sun Dec 12 14:45:21 CST 2010


Right. If you are using SFS, then paths should be absolute. Though I
don't necessarily think that this is how things should be.

Mihael

On Fri, 2010-12-10 at 11:20 -0600, Michael Wilde wrote:
> Hi Allan,
> 
> I vaguely recall similar issues with prior tests of provider staging. Based on Mihael's recommendation Ive been using the "proxy" mode. I dont have my head around all the modes at the moment (I did when I first looked at it).
> 
> At any rate, in my tests using proxy mode, just on localhost, I did not run into any full-pathname problems: I used simple_mapper and unqualified partial pathnames.
> 
> My test is on the CI net at: /home/wilde/swift/lab/tests/test.local.ps.sh
> and pasted below.  We should build a similar test to validate proxy-mode provider staging on remote sites with coasters.  Whoever gets to it first.
> 
> See if using the pattern below gets you past this full-pathname problem.
> 
> - Mike
> 
> bri$ cat ./test.local.ps.sh
> #! /bin/bash
> 
> cat >tc <<END
> 
> localhost sh /bin/sh null null null
> localhost cat /bin/cat null null null
> 
> END
> 
> cat >sites.xml <<END
> 
> <config>
>   <pool handle="localhost">
>     <execution provider="coaster" url="none" jobmanager="local:local"/>
>     <profile namespace="globus" key="workersPerNode">8</profile>
>     <profile namespace="globus" key="slots">1</profile>
>     <profile namespace="globus" key="maxnodes">1</profile>
>     <profile key="jobThrottle" namespace="karajan">.15</profile>
>     <profile namespace="karajan" key="initialScore">10000</profile>
>     <profile namespace="swift" key="stagingMethod">proxy</profile>
>     <workdirectory>$PWD</workdirectory>
>   </pool>
> </config>
> 
> END
> 
> cat >cf <<END
> 
> wrapperlog.always.transfer=true
> sitedir.keep=true
> execution.retries=0
> lazy.errors=false
> status.mode=provider
> use.provider.staging=true
> provider.staging.pin.swiftfiles=false
> 
> END
> 
> cat >pstest.swift <<EOF
> 
> type file;
> 
> app (file o) cat (file i)
> {
>   cat @i stdout=@o;
> }
> 
> file infile[]  <simple_mapper; location="indir", prefix="f.", suffix=".in">;
> file outfile[] <simple_mapper; location="outdir", prefix="f.",suffix=".out">;
> 
> foreach f, i in infile {
>   outfile[i] = cat(f);
> }
> 
> EOF
> 
> swift -config cf -tc.file tc -sites.file sites.xml pstest.swift
> bri$ 
> 
> 
> bri$ mkdir outdir
> bri$ ls
> indir/  outdir/  test.local.ps.sh
> bri$ ls indir
> f.0000.in  f.0001.in  f.0002.in  f.0003.in  f.0004.in
> bri$ ls outdir
> bri$ ./test.local.ps.sh
> Swift svn swift-r3758 cog-r2951 (cog modified locally)
> 
> RunID: 20101210-1108-qsdi3mz6
> Progress:
> Progress:  Active:4  Finished successfully:1
> Final status:  Finished successfully:5
> bri$ ls outdir
> f.0000.out  f.0001.out  f.0002.out  f.0003.out  f.0004.out
> bri$ 
> 
> 
> ----- Original Message -----
> > Hi Mike,
> > 
> > I'm having problems getting provider staging to work. I seems to pass
> > files as absolute references:
> > 
> > _____________________________________________________________________________
> > 
> > command line
> > _____________________________________________________________________________
> > 
> > -e /bin/cat -out stdout.txt -err stderr.txt -i -d -if
> > //gpfs/pads/swift/aespinosa/science/cybershake/RuptureVariations/100/0/100_0.txt.variation-s0000-h0000
> > -of -k -cdmfile -status provider -a
> > /gpfs/pads/swift/aespinosa/science/cybershake/RuptureVariations/100/0/100_0.txt.variation-s0000-h0000
> > 
> > _____________________________________________________________________________
> > 
> > stdout
> > _____________________________________________________________________________
> > 
> > 
> > _____________________________________________________________________________
> > 
> > stderr
> > _____________________________________________________________________________
> > 
> > /bin/cat:
> > /gpfs/pads/swift/aespinosa/science/cybershake/RuptureVariations/100/0/100_0.txt.variation-s0000-h0000:
> > No such file or directory
> > 
> > But the remote site does not have /gpfs/pads .
> > 
> > Should I be modifying my mappers to accomodate this?
> > 
> > -Allan
> > 
> > 
> > 2010/12/10 Michael Wilde <wilde at mcs.anl.gov>:
> > > Did you try provider staging, which might be easier to throttle
> > > given that the staging endpoints are more under Swift's control?
> > >
> > > - MIke
> > >
> > > ----- Original Message -----
> > >> Hi Mike.
> > >>
> > >> Yes. I had the workflow stagein 1, 10, 40 , 80, 400, 800, 2000,
> > >> 8000,
> > >> 30000 files. The throttles are the same for each run. Problems
> > >> started to occur at around 800 files .
> > >>
> > >> For staging in local files, problems started to occur at 30000
> > >> files
> > >> where vdl:dostagein hits gpfs too much.
> > >>
> > >> -Allan
> > >>
> > >>
> > >> 2010/12/10 Michael Wilde <wilde at mcs.anl.gov>:
> > >> > Allan, did you verify that each remote site you are talking to in
> > >> > this test is functional at low transaction rates using your
> > >> > current
> > >> > sites configuration?
> > >> >
> > >> > I.e., are you certain that the error below is due to load and not
> > >> > a
> > >> > site-related error?
> > >> >
> > >> > - Mike
> > >> >
> > >> >
> > >> > ----- Original Message -----
> > >> >> I tried to have the tests more synthesized using Mike's catsall
> > >> >> workflow staging in ~3 MB data files to 5 OSG sites. Swift seem
> > >> >> to
> > >> >> handle the transfer well when the originating files are local.
> > >> >> But
> > >> >> when it starts to use remote file objects, I get all these 3rd
> > >> >> party
> > >> >> transfer exceptions. my throttle for file transfers is 8 and for
> > >> >> file
> > >> >> operations is 10.
> > >> >>
> > >> >> 2010-12-09 18:58:16,700-0600 DEBUG DelegatedFileTransferHandler
> > >> >> File
> > >> >> transfer with resource remote->tmp
> > >> >> 2010-12-09 18:58:16,734-0600 DEBUG DelegatedFileTransferHandler
> > >> >> Exception in transfer
> > >> >> org.globus.cog.abstraction.impl.file.IrrecoverableResourceException:
> > >> >> Exception in getFile
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.file.ftp.AbstractFTPFileResource.translateException(AbstractFTP
> > >> >> FileResource.java:62)
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.file.gridftp.old.FileResourceImpl.getFile(FileResourceImpl.java
> > >> >> :401)
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.fileTransfer.DelegatedFileTransferHandler.doSource(DelegatedFil
> > >> >> eTransferHandler.java:269)
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.fileTransfer.CachingDelegatedFileTransferHandler.doSource(Cachi
> > >> >> ngDelegatedFileTransferHandler.java:59)
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.fileTransfer.DelegatedFileTransferHandler.run(DelegatedFileTran
> > >> >> sferHandler.java:486)
> > >> >> at java.lang.Thread.run(Thread.java:619)
> > >> >> Caused by:
> > >> >> org.globus.cog.abstraction.impl.file.FileResourceException:
> > >> >> Failed to retrieve file information
> > >> >> about
> > >> >> /projsmall/osg/data/engage/scec/swift_scratch/catsall-20101209-1839-pnazhid6/info/p/cat-p2em5s2k-in
> > >> >> fo
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.file.ftp.AbstractFTPFileResource.translateException(AbstractFTP
> > >> >> FileResource.java:51)
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.file.gridftp.old.FileResourceImpl.getGridFile(FileResourceImpl.
> > >> >> java:550)
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.file.gridftp.old.FileResourceImpl.getFile(FileResourceImpl.java
> > >> >> :384)
> > >> >> ... 4 more
> > >> >> Caused by: org.globus.ftp.exception.ServerException: Server
> > >> >> refused
> > >> >> performing the request. Custom message
> > >> >> : Server refused MLST command (error code 1) [Nested exception
> > >> >> message: Custom message: Unexpected reply:
> > >> >> 500-Command failed :
> > >> >> globus_gridftp_server_file.c:globus_l_gfs_file_stat:389:
> > >> >> 500-System error in stat: No such file or directory
> > >> >> 500-A system call failed: No such file or directory
> > >> >> 500 End.] [Nested exception is
> > >> >> org.globus.ftp.exception.UnexpectedReplyCodeException: Custom
> > >> >> message: Une
> > >> >> xpected reply: 500-Command failed :
> > >> >> globus_gridftp_server_file.c:globus_l_gfs_file_stat:389:
> > >> >> 500-System error in stat: No such file or directory
> > >> >> 500-A system call failed: No such file or directory
> > >> >> 500 End.]
> > >> >> at
> > >> >> org.globus.ftp.exception.ServerException.embedUnexpectedReplyCodeException(ServerException.java
> > >> >> :101)
> > >> >> at org.globus.ftp.FTPClient.mlst(FTPClient.java:643)
> > >> >> at
> > >> >> org.globus.cog.abstraction.impl.file.gridftp.old.FileResourceImpl.getGridFile(FileResourceImpl.
> > >> >> java:546)
> > >> >> ... 5 more
> > >> >>
> > >> >>
> > >> >> I may have been stressing the source gridftp server too much
> > >> >> (pads)
> > >> >> that it cannot handle a throttle of 8 . But at this
> > >> >> configuration,
> > >> >> I
> > >> >> get low transfer performance. When doing direct transfers, I was
> > >> >> able
> > >> >> to get better transfer rates until i start coking out gpfs at
> > >> >> 10k
> > >> >> stageins. My throttle for this configurations was 40 for both
> > >> >> file
> > >> >> transfers and file operations.
> > >> >>
> > >> >>
> > >> >> 2010/12/2 Allan Espinosa <aespinosa at cs.uchicago.edu>:
> > >> >> > I have a bunch of 3rd party gridftp transfers. Swift reports
> > >> >> > around
> > >> >> > 10k jobs being in the vdl:stagein at a time. After a while i
> > >> >> > get
> > >> >> > a
> > >> >> > couple of these errors. Does it look like i'm stressing the
> > >> >> > gridftp
> > >> >> > servers? my throttle.transfers=8
> > >> >> >
> > >> >> > 2010-12-02 02:22:06,008-0600 DEBUG
> > >> >> > DelegatedFileTransferHandler
> > >> >> > Starting service on gsiftp://gpn-hus
> > >> >> > 2010-12-02 02:22:06,008-0600 DEBUG
> > >> >> > DelegatedFileTransferHandler
> > >> >> > File
> > >> >> > transfer with resource local->r
> > >> >> > 2010-12-02 02:22:06,247-0600 DEBUG
> > >> >> > DelegatedFileTransferHandler
> > >> >> > Exception in transfer
> > >> >> > org.globus.cog.abstraction.impl.file.FileResourceException
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.file.ftp.AbstractFTPFileResource.translateException(Abstr
> > >> >> > esource.java:51)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.file.ftp.AbstractFTPFileResource.translateException(Abstr
> > >> >> > esource.java:34)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.file.gridftp.old.FileResourceImpl.putFile(FileResourceImp
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.DelegatedFileTransferHandler.doDestination(D
> > >> >> > eTransferHandler.java:352)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.CachingDelegatedFileTransferHandler.doDestin
> > >> >> > ngDelegatedFileTransferHandler.java:46)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.DelegatedFileTransferHandler.run(DelegatedFi
> > >> >> > andler.java:489)
> > >> >> >        at java.lang.Thread.run(Thread.java:619)
> > >> >> > Caused by: org.globus.ftp.exception.ServerException: Server
> > >> >> > refused
> > >> >> > performing the request. Custom m
> > >> >> > rror code 1) [Nested exception message: Custom message:
> > >> >> > Unexpected
> > >> >> > reply: 451 ocurred during retrie
> > >> >> > org.globus.ftp.exception.DataChannelException: setPassive()
> > >> >> > must
> > >> >> > match
> > >> >> > store() and setActive() - ret
> > >> >> > rror code 2)
> > >> >> > org.globus.ftp.exception.DataChannelException: setPassive()
> > >> >> > must
> > >> >> > match
> > >> >> > store() and setActive() - ret
> > >> >> > rror code 2)
> > >> >> >        at
> > >> >> >        org.globus.ftp.extended.GridFTPServerFacade.retrieve(GridFTPServerFacade.java:469)
> > >> >> >        at org.globus.ftp.FTPClient.put(FTPClient.java:1294)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.file.gridftp.old.FileResourceImpl.putFile(FileResourceImp
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.DelegatedFileTransferHandler.doDestination(D
> > >> >> > eTransferHandler.java:352)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.CachingDelegatedFileTransferHandler.doDestin
> > >> >> > ngDelegatedFileTransferHandler.java:46)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.DelegatedFileTransferHandler.run(DelegatedFi
> > >> >> > andler.java:489)
> > >> >> >        at java.lang.Thread.run(Thread.java:619)
> > >> >> > ] [Nested exception is
> > >> >> > org.globus.ftp.exception.UnexpectedReplyCodeException: Custom
> > >> >> > message: Unexp
> > >> >> > : 451 ocurred during retrieve()
> > >> >> > org.globus.ftp.exception.DataChannelException: setPassive()
> > >> >> > must
> > >> >> > match
> > >> >> > store() and setActive() - ret
> > >> >> > rror code 2)
> > >> >> > org.globus.ftp.exception.DataChannelException: setPassive()
> > >> >> > must
> > >> >> > match
> > >> >> > store() and setActive() - ret
> > >> >> > rror code 2)
> > >> >> >        at
> > >> >> >        org.globus.ftp.extended.GridFTPServerFacade.retrieve(GridFTPServerFacade.java:469)
> > >> >> >        at org.globus.ftp.FTPClient.put(FTPClient.java:1294)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.file.gridftp.old.FileResourceImpl.putFile(FileResourceImp
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.DelegatedFileTransferHandler.doDestination(D
> > >> >> > eTransferHandler.java:352)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.CachingDelegatedFileTransferHandler.doDestin
> > >> >> > ngDelegatedFileTransferHandler.java:46)
> > >> >> >        at
> > >> >> >        org.globus.cog.abstraction.impl.fileTransfer.DelegatedFileTransferHandler.run(DelegatedFi
> > >> >> > andler.java:489)
> > >> >> >        at java.lang.Thread.run(Thread.java:619)
> > >> >> > ]
> > >> >> >        at
> > >> >> >        org.globus.ftp.exception.ServerException.embedUnexpectedReplyCodeException(ServerExceptio
> > >> >> >        at
> > >> >> >        org.globus.ftp.exception.ServerException.embedUnexpectedReplyCodeException(ServerExceptio
> > >> >> >        at
> > >> >> >        org.globus.ftp.vanilla.TransferMonitor.run(TransferMonitor.java:195)
> > >> >> >        ... 1 more
> > >> >> >
> > >>
> > >> --
> > >> Allan M. Espinosa <http://amespinosa.wordpress.com>
> > >> PhD student, Computer Science
> > >> University of Chicago <http://people.cs.uchicago.edu/~aespinosa>
> > >
> > > --
> > > Michael Wilde
> > > Computation Institute, University of Chicago
> > > Mathematics and Computer Science Division
> > > Argonne National Laboratory
> > >
> > >
> > >
> > 
> > 
> > 
> > --
> > Allan M. Espinosa <http://amespinosa.wordpress.com>
> > PhD student, Computer Science
> > University of Chicago <http://people.cs.uchicago.edu/~aespinosa>
> 





More information about the Swift-user mailing list