You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Davide Giannella (JIRA)" <ji...@apache.org> on 2019/04/09 10:37:12 UTC

[jira] [Updated] (OAK-6892) Query: ability to "nicely" traverse

     [ https://issues.apache.org/jira/browse/OAK-6892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davide Giannella updated OAK-6892:
----------------------------------
    Fix Version/s: 1.14.0

> Query: ability to "nicely" traverse
> -----------------------------------
>
>                 Key: OAK-6892
>                 URL: https://issues.apache.org/jira/browse/OAK-6892
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: query
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>            Priority: Major
>             Fix For: 1.12.0, 1.14.0
>
>
> Currently, queries that traverse many nodes log a warning, or can even fail (if configured). This is to ensure system resources are not blocked (CPU, I/O, memory).
> But there are cases where it doesn't make sense to create an index, but traverse (a certain path structure, or sometimes even the whole repository). For example, finding a text with "like '%xxx%'". The problem isn't that it's slow; the problem is that it's blocking / slowing down other users. Another example is during migration, where the alternative is to create an index (which also traverses the repository).
> One option is to allow such queries to run, but throttle them. We could add the hint {{option(traversal throttle)}} to do that. Throttle means: don't use up all I/O, but yield to other tasks depending on config settings (during migration, yield is not needed). As a rule of thumb, the longer the query runs, the more should it yield (up to some value).
> It would be good to allow stopping such queries, and get progress information. The easiest solution might be over JMX, and a more advanced solution is using new API (like, using an interface QueryTraversalObserver, and have our QueryResult implement that interface).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)