Print

Print


Hi all,

  well, right now I am unable to see a clear reason for this. Let's 
discuss it. Those values were supposed to be in general "arbitrary", in 
the sense that normally it has no sense at all to modify e.g., a timeout 
value. It is 60 sec, but 90 or 120 makes very little difference if you 
are using the software in a plain way.

  The direction I'd like to look at is a direction where one has no need 
to tweak with strange parameters to have a nice xrootd experience.

The dreamable solution is that the client manages its "crucial" 
parameters by itself (e.g. the cache block size or the number of 
parallel streams). For instance, we were recently planning the 
implementation of the multistream xfers, and we totally agreed on the 
fact that the client has to calculate (and adjust) internally this 
parameter with no need for intervention. Why would one want to modify a 
parameter that works?
The consequence of your proposal is instead a multiplication of the 
parameters, so I am a bit puzzled. Can you give some use cases where 
such a functionality is mandatory? Where for mandatory I intend that a 
*real* test fails (or performs poorly) with value X=default and succeeds 
with value Y. Right now I am unable to wonder such a situation.

  The other direction I am looking at is the reduction of the global 
overhead. I will work heavily on that, since there are many aspects that 
are worth an optimization.
Right now the most frequently used parameters are read from the env only 
in the ctor, in order to avoid a mess of accesses to string-based hash 
tables. Every time I find a parameter which is read too many times per 
single transaction, I wonder if I can move it to the ctor (and loose the 
possibility to change it at runtime). Asking for the ability of 
generically modifying param values during the use of a single instance 
of the client (or a connection) would raise a lot this overhead for sure.

Fabrizio







Derek Feichtinger wrote:
> Hi, Gerri and Fabrizio
> 
>> Yes, as it is now TXNetFile allows only one set of globally-set config
>> options.
>> I remember a brief discussion we had Fabrizio and I once on this, but then
>> nothing has been done.
>>
>> As this may be relevant also for  'xrdcp',  perhaps  we should introduce
>> the possibility to define 'per host' rules in a config file checked by
>> XrdClient,
>> making use of the existing 'if-then' infrastructure used for server
>> directives.
>>
>> What do you think?
> 
> That sounds good. But even on top of that it would be nice to be able to set 
> the options per connection. Maybe the logic of my program wants to check 
> fast, whether it can access certain non critical files, but still I want to 
> have more stringent settings for critical files. If I use threads, the gEnv 
> way would force me to introduce mutexes (by the way: what happens in the case 
> of async connections, when I change the options while they are still in 
> process?).
> 
> Cheers,
> Derek