[
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)