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/06/04 15:35:09 UTC

[jira] [Updated] (OAK-5924) Prevent long running query from delaying refresh of index

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

Davide Giannella updated OAK-5924:
----------------------------------
    Fix Version/s: 1.16.0

> Prevent long running query from delaying refresh of index
> ---------------------------------------------------------
>
>                 Key: OAK-5924
>                 URL: https://issues.apache.org/jira/browse/OAK-5924
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: lucene
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>            Priority: Major
>             Fix For: 1.14.0, 1.16.0
>
>
> Whenever the index gets updated {{IndexTracker}} detects the changes and open new {{IndexNode}} and closes old index nodes. This flow would block untill all old IndexNode are closed.
> IndexNode close itself relies on a writer lock. It can happen that a long running query i.e. a query which is about to read a page of large is currently executing on the old IndexNode instance. This query is trying load 100k  docs and is very slow (due to loading of excerpt) then such a query would prevent the IndexNode from getting closed. This in turn would prevent the index from seeing latest data and become stale.
> To make query and indexing more resilient we should look if current IndexNode being used for query is closing or not. If closing then query should open a fresh searcher



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