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 "Andrei Dulceanu (Jira)" <ji...@apache.org> on 2021/01/21 12:42:10 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 ]
Andrei Dulceanu updated OAK-5924:
---------------------------------
Fix Version/s: (was: 1.38.0)
1.40.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.40.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
(v8.3.4#803005)