Julian Sedding commented on SLING-7577:

This issue is actually independent of the watch feature (except the cache needs 
to be cleared/pruned when a file is modified). Despite the caches already 
present, there are frequent accesses to check whether files exist etc. As 
mentioned in the issue description, this is especially problematic when access 
to non existing resources is frequently attempted.

I agree, however, that there is room for improvement regarding the watch 
feature as well. Not sure if NIO is feasible in the meantime, I also remember 
that it had issues. However, a safer improvement could be to have a single 
watcher for all instances (configurations) of FSRP. I noticed on my system with 
~10 configured FSRPs, each with a watcher interval of 101ms (the minimum 
possible), CPU was constantly at ~35%.

> FS Resource Provider slow due to frequent file stat access
> ----------------------------------------------------------
>                 Key: SLING-7577
>                 URL: https://issues.apache.org/jira/browse/SLING-7577
>             Project: Sling
>          Issue Type: Improvement
>          Components: JCR
>    Affects Versions: File System Resource Provider 2.1.12
>            Reporter: Julian Sedding
>            Assignee: Julian Sedding
>            Priority: Major
>             Fix For: File System Resource Provider 2.1.14
> The file-system resource provider is relatively slow, because it frequently 
> checks for file existence, for whether a file is a directory or a file and 
> for the last modified time.
> Normally this is not an issue, but in a setup where context aware 
> configurations are used via FSRP, there are a lot of lookups for non-existing 
> resources, which are not cached in any way. In the scenario I experienced, 
> the same lookups occurred frequently during a single HTTP request and caused 
> page-rendering to take ~5s.
> To improve this, I propose to cache file stats, including non-existence of a 
> file.

This message was sent by Atlassian JIRA

Reply via email to