Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-3924 Create Lucene Index on an existing region
  3. GEODE-3926

Lucene Query should throw an exception while lucene index is being built on existing region

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • lucene

    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.

      Attachments

        Activity

          People

            ukohlmeyer Udo Kohlmeyer
            jasonhuynh Jason Huynh
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1h 50m
                1h 50m