Print

Print


I mean like:

class DelayFileClose: public Job
{


};

schedP->Schedule(new DelayFileClose(fP))

    Lukasz

On 26.03.2014 10:16, Lukasz Janyst wrote:
> On 26.03.2014 03:16, Andrew Hanushevsky wrote:
>> 1) XrdPosixFile needs to inherit the XrdJob class.
>
>     Ugh, that's ugly. File really is not a Job. What if you will need to
> delay a different thing later on? Can this be wrapped somehow?
>
>     Lukasz
>
>> 2) XrdPosixFile needs to define the virtual method DoIt() from XrdJob to
>> simply call its DelayedDestroyed method and return.
>> 3) When you need to delay the destroy then if the schedP exists,
>> schedule the destroy via schedP->Schedule((XrdJob *)fP) otherwise run a
>> separate thread as you do now.
>>
>> OK?
>>
>> Andy
>>
>> -----Original Message----- From: Alja Mrak-Tadel
>> Sent: Tuesday, March 25, 2014 3:40 PM
>> To: Andrew Hanushevsky ; Matevz Tadel
>> Cc: xrootd-dev
>> Subject: Re: release status
>>
>> Hi Andy,
>>
>> This is the minimal change that it does what we need
>> https://github.com/alja/xrootd/compare/posix-close
>>
>> Alja
>>
>> On 03/24/14 16:23, Andrew Hanushevsky wrote:
>>> Hi Matevz,
>>>
>>> The reason is that I chose ioActive() is simply that I thought we would
>>> keep the code that destroys the posix object the same in close() and
>>> execute it if we could do so immediately or schedule a thread to do a
>>> defer close. In any case, the code (as it does now) at the very least
>>> removes the FD from the fd table. Then again, looking at the code
>>> changes I do get a little confused. I suppose I would say keep the old
>>> logic as close as to the original with minimal changes to solve this.
>>>
>>> Andy
>>>
>>> On Mon, 24 Mar 2014, Matevz Tadel wrote:
>>>
>>>> Hi Andy,
>>>>
>>>> I vote for
>>>>
>>>> bool initiateClose();
>>>>
>>>> as this makes it clear that Close() will be called in a jiffy and that
>>>> irreversible state changes might occur in the object. ioActive()
>>>> sounds like something that can be called several times without
>>>> changing the object.
>>>>
>>>> But ... you're the master so please just pick what you think is
>>>> consistent with the rest.
>>>>
>>>> Matevz
>>>>
>>>> On 03/24/14 12:54, Andrew Hanushevsky wrote:
>>>>> 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
>>>>
>>
>> ########################################################################
>> 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