[ 
https://issues.apache.org/jira/browse/GEODE-3926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16433435#comment-16433435
 ] 

ASF subversion and git services commented on GEODE-3926:
--------------------------------------------------------

Commit 75ae58423bc66ca127fec7d2fc3ad71fbed61094 in geode's branch 
refs/heads/feature/GEODE-4647 from [~huynhja]
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=75ae584 ]

GEODE-3926: Lucene Query Exception is thrown if queries are executed in the 
middle of reindexing a region (#1742)

  * Add new internal exception, LuceneIndexCreationInProgressException
  * Index the region even if it's empty
  * Added awaitility clauses to reindexing tests
  * getRepositories will throw an exception if the index is not available
  * getRepositories will not throw an exception if the data region is empty 
(this scenario can occur when creating the index before the region)

> 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
>            Assignee: Udo Kohlmeyer
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> 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
(v7.6.3#76005)

Reply via email to