Print

Print


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