Chetan Mehrotra created OAK-5924:
------------------------------------

             Summary: Prevent long running query from delaying close 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
             Fix For: 1.8


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
(v6.3.15#6346)

Reply via email to