Hi Pavel,
just some comments:
Pavel Jakl wrote:
>
> So, I have figured 2 possible cases how to do it:
>
> 1) Use AsyncOpen at client side
>
> I am scared of this solution, since it can use lots of resources with
> many simultaneously opened connections. I can see jobs with thousand of
> files. In our case, when we have 400 nodes for job's processing, it
> could be very big number of connections to redirector node.
>
A file to be opened typically does not mean one more connection to the
server. Typically a single job keeps only 1 connection per server, even
if it opens many files. Hence the resources used at the client side are
mainly object instances. This should make AsyncOpen a usable method
again for your case, provided that you don't have tenths of thousands
files to open for every running job.
> 2) There is some sort of "prepare" methods at server side. So, how can I
> call them from the client side ?
Just instantiate (even statically, like in xrdcp) a XrdClientAdmin
object and use the Prepare function in it. The interface and the
description is in XrdClientAdmin.hh
>
> This solution would be better for me, if I could somehow pass the list
> to the server through the client and do not need any other assistance or
> presence of the client at each file's preparation.
> I know that there could be a problem with this. The files can disappear
> between the prepared and actual requested time of processing. (server
> went down, purging etc.). I think that the occurrence of this case is
> usually very small. However, I didn't make any sophisticated
> investigation to prove it since it would be very hard to get these
> statistic.
>
> Thanks for any suggestion or help
> Cheers
> Pavel
|