Print

Print


Hi Alja,

Well, if that is the simplest way to do it then let's go ahead with that. 
I assume th I/O pending state is quite dynamic and can't really be easily 
handled by some simple flag. So, let's go with something like:

bool ioActive();

which returns true that triggers a delayed close and false which allows 
the caller to do an inline close. If there is more than just active I/O 
that can place the object is a non-closeable state then we should use a 
more generic name (e.g. isCloseable()). What do you think?

Andy

On Sun, 23 Mar 2014, Alja Mrak-Tadel wrote:

> Hi Andy,
>> I was wondering if there was a way to structure this so that a thread is 
>> run to destroy the file object only if a file cache is being used. I'd 
>> rather not add the thread overhead to things like fuse and a non-caching 
>> proxy server. As for reusung a worker thread, while a good idea, we really 
>> don't have access to them. Something to think about. I'll see how difficult 
>> it would be. In any case, even if I could provide access to the thread 
>> pool, there won't be one if the posix interface is being used outside of 
>> xrootd, so the code would have to have two paths in any case.
>> 
> How about adding a new virtual XrdOucCacheIO function that checks if 
> destruction of XrdPosixFile needs to be delayed (e.g. InitiateClose(), 
> RequiresDelayedClose(), TryClose() ...)? The return value of this function 
> determines if a new thread is needed to run the real Close(). In this 
> function I will prevent issuing any new read requests so it has to be 
> guaranteed that the real Close() is called immediately after that.
>
> Alja
>
>> On Fri, 21 Mar 2014, Alja Mrak-Tadel wrote:
>> 
>>> Hi Andy,
>>> 
>>> I had to move destruction of XrdPosixFile into separate task to avoid long 
>>> lock in XrdOfsHandle::Alloc() and XrdOfsHandle::Retire(). This is the 
>>> change which fixed the problem:
>>>  https://github.com/alja/xrootd/compare/pd
>>> You might want to reuse existing worker threads instead. One of the 
>>> XrdClFile::Close() calls is also removed.
>>> 
>>> We also made improvements in XrdFileCache module. We need a day or two to 
>>> close up changes and test them.
>>> 
>>> Alja
>>> 
>>> 
>>> 
>>> On 03/20/14 13:33, Andrew Hanushevsky wrote:
>>>> Hi Matevz,
>>>> 
>>>> Hmmmm, ok you need to give me specific details on what you want done.
>>>> 
>>>> Andy
>>>> 
>>>> On Thu, 20 Mar 2014, Matevz Tadel wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> Alja and I would like to push in some changes for the XrdFileCache. We
>>>>> have our own workaround for destruction of XrdPosixFile /
>>>>> XrdOucCacheIO in a special thread  ... Andy will probably want to
>>>>> implement this for us so he stays on top of things.
>>>>> 
>>>>> We should be good to go early next week.
>>>>> 
>>>>> Cheers,
>>>>> Matevz
>>>>> 
>>>>> 
>>>>> On 03/20/14 10:04, Lukasz Janyst wrote:
>>>>>> Hello everyone,
>>>>>>
>>>>>>     I have done all the coding that was on my list. I have two items
>>>>>> left:
>>>>>> 
>>>>>> 1) packaging - in the process of being done - consulting with Mattias 
>>>>>> to
>>>>>> integrate with EPEL. I have some draft specfiles, but probably need
>>>>>> two or three
>>>>>> more iterations.
>>>>>> 
>>>>>> 2) the server is broken when compiled in C++11 mode. It didn't seem
>>>>>> to respond
>>>>>> when I tested it three months ago, so perhaps the issue is fixed now,
>>>>>> needs
>>>>>> testing. Andy, can you please check whether this is still the case?
>>>>>> You can use
>>>>>> my testing cluster.
>>>>>> 
>>>>>> Cheers,
>>>>>>     Lukasz
>>>>>> 
>>>>>> ######################################################################## 
>>>>>> Use REPLY-ALL to reply to list
>>>>>> 
>>>>>> To unsubscribe from the XROOTD-DEV list, click the following link:
>>>>>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A
>>>>> 
>>>>> ######################################################################## 
>>>>> Use REPLY-ALL to reply to list
>>>>> 
>>>>> To unsubscribe from the XROOTD-DEV list, click the following link:
>>>>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
>>>>> 
>>>> 
>>>> ######################################################################## 
>>>> Use REPLY-ALL to reply to list
>>>> 
>>>> To unsubscribe from the XROOTD-DEV list, click the following link:
>>>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
>>> 
>>> ########################################################################
>>> Use REPLY-ALL to reply to list
>>> 
>>> To unsubscribe from the XROOTD-DEV list, click the following link:
>>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
>>> 
>> 
>> ########################################################################
>> Use REPLY-ALL to reply to list
>> 
>> To unsubscribe from the XROOTD-DEV list, click the following link:
>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1