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

Dan Smith updated GEODE-3926:
-----------------------------
    Description: 
When GEODE-3928 is complete, we will have a process to index existing data in a 
region when a lucene index is added. That process may take some time. While 
indexing is going on queries should not block for a long period of time or 
return incorrect results. Instead the query should throw an exception 
indicating that the index does not exist/is not built yet.

Acceptance:

Queries executed while indexing is going on throw an exception, rather than 
blocking or returning incorrect results.

Implementation Details:

GEODE-3928 is about modifying computeRepository to actually do the indexing. 
Queries also call compute repository, so they will block until 
computeRepository is done.

To avoid blocking, we can make  computeRepo to return an IndexRepository in an 
"building" state. That index repo could contain an asynchronous task that is 
actually indexing the data. Until the asynchronous task is complete, the 
IndexRepostory could throw exceptions from query operations. This has the 
advantage of making sure that whenever computeRepository is called, we always 
at least start or make sure there is a task running to index the data.

  was:When GEODE-3925 is complete, a Lucene Query should check for the COMPLETE 
token or file.  If it does not exist, the query should throw an exception 
letting the user know the index is not yet ready.


> Lucene Query should throw an exception while lucene index is being built on 
> existing region
> -------------------------------------------------------------------------------------------
>
>                 Key: GEODE-3926
>                 URL: https://issues.apache.org/jira/browse/GEODE-3926
>             Project: Geode
>          Issue Type: Sub-task
>          Components: lucene
>            Reporter: Jason Huynh
>            Priority: Major
>
> When GEODE-3928 is complete, we will have a process to index existing data in 
> a region when a lucene index is added. That process may take some time. While 
> indexing is going on queries should not block for a long period of time or 
> return incorrect results. Instead the query should throw an exception 
> indicating that the index does not exist/is not built yet.
> Acceptance:
> Queries executed while indexing is going on throw an exception, rather than 
> blocking or returning incorrect results.
> Implementation Details:
> GEODE-3928 is about modifying computeRepository to actually do the indexing. 
> Queries also call compute repository, so they will block until 
> computeRepository is done.
> To avoid blocking, we can make  computeRepo to return an IndexRepository in 
> an "building" state. That index repo could contain an asynchronous task that 
> is actually indexing the data. Until the asynchronous task is complete, the 
> IndexRepostory could throw exceptions from query operations. This has the 
> advantage of making sure that whenever computeRepository is called, we always 
> at least start or make sure there is a task running to index the data.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to