Hi Fabrizio,
The reason we didn't do it for a disk caching proxy is because cache
synchrnization is extremely difficult as you may be reading as well as
writing the file. The memory caching proxy does support reading and
writing as synchnizing a memory cache is trivial. So, even if we did a
passthrough option it would be very restrictive (i.e. you can either read
the data or write the data but not both unless the cache is disabled and
opening a file for writing would necessarily have to flush the cache for
that file). That we could also do.
Probably the fastest solution here (at the moment) is to write an ofs
plugin wrapper for the caching proxy that checks for write opens and does
the appropriate redirection. We can do that also by extending the static
redirect directive to differentiate between read paths and write paths;
thuogh that opens the proxy to cache synchronization issues unless files
are not bth read and written at the same time.
Andy
On Fri, 2 Mar 2018, Fabrizio Furano wrote:
> Hi Andy,
>
> thanks for the hints. My opinion is that a passthrough option would be
> a very big plus for the caching proxy, and I was sincerely surprised
> by this limitation.
>
> For some of our use cases I believe that we will start using it without
> caching, as I can't imagine how to give a transparent service by having
> to force clients to use different paths for reading and writing.
>
> What do you think ?
>
> Thank you
> Fabrizio
>
> On 03/01/2018 06:09 PM, Andrew Hanushevsky wrote:
>> Correct, we don't support a writable cache because that's not what a cache is all about. Does the origin support writes? If so,
>> we could potentially provide a cache passthrough option. Otherwise, if the readable and writable path differ, he could have run
>> two proxies -- one caching for read access and a passthru proxy for writing then setup a redirect directive in the primary proxy
>> (i.e. the one that will be initially used) to direct writes to the passthru proxy based on path.
>>
>> Andy
>>
>> On Thu, 1 Mar 2018, Fabrizio Furano wrote:
>>
>>> Hi,
>>>
>>> Mihai is trying to setup a small Pss machine that also works as a cache.
>>>
>>> For reading it seems to work fine, yet it stubbornly refuses to write files with
>>> this error:
>>>
>>>> 180301 17:27:38 13788 XrdFileCache_Manager: debug Cache::Attach()
>>>> root:[log in to unmask]:1094//eos/xdc/testing/hello.txt?&oss.asize=14&oss.lcl=1 location: <deferred open>
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 ofs_fstat: fn=/eos/xdc/testing/hello.txt
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 XrootdResponse: 0100 sending 46 data bytes; status=0
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 XrootdProtocol: 0100 req=write dlen=14
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 XrootdProtocol: 0100 fh=0 write 14@0
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 ofs_write: 14@0 fn=/eos/xdc/testing/hello.txt
>>>> 180301 17:27:38 13788 ofs_write: root.3008:20@xdc-test-fst1 Unable to write /eos/xdc/testing/hello.txt; operation not supported
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 XrootdProtocol: 0100 discarding 0 bytes
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 XrootdResponse: 0100 sending err 3005: Unable to write
>>>> /eos/xdc/testing/hello.txt; operation not supported
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 XrootdProtocol: 0100 req=close dlen=0
>>>> 180301 17:27:38 13788 root.3008:20@xdc-test-fst1 ofs_close: use=1 fn=/eos/xdc/testing/hello.txt
>>>
>>> If we remove the directive pss.cachelib then writes work instead.
>>>
>>> Can anyone give us a clue please ?
>>>
>>> Thank you
>>> Fabrizio and Mihai
>>>
>>>
>>
>
>
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1
|