Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-1339

Add IndexReader.acquire() and release() methods using IndexReader's ref counting

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.4
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New, Patch Available

      Description

      From: http://mail-archives.apache.org/mod_mbox/lucene-java-dev/200807.mbox/%3cPine.OSX.4.64.0807170752080.1708@c5850-a3-2-62-147-22-102.dial.proxad.net%3e

      I have a server where a bunch of threads are handling search requests. I
      have a another process that updates the index used by the search server and
      that asks the searcher server to reopen its index reader after the updates
      completed.

      When I reopen() the index reader, I also close the old one (if the reopen()
      yielded a new instance). This causes problems for the other threads that
      are currently in the middle of a search request.

      I'd like to propose the addition of two methods, acquire() and release()
      (attached to this bug report), that increment/decrement the ref count that IndexReader
      instances currently maintain for related purposes. That ref count prevents
      the index reader from being actually closed until it reaches zero.

      My server's search threads, thus acquiring and releasing the index reader
      can be sure that the index reader they're currently using is good until
      they're done with the current request, ie, until they release() it.

        Activity

        Hide
        mikemccand Michael McCandless added a comment -

        Thanks Andi!

        Show
        mikemccand Michael McCandless added a comment - Thanks Andi!
        Hide
        vajda@ovaltofu.org Andi Vajda added a comment -

        That would work just as well !
        Andi..

        Show
        vajda@ovaltofu.org Andi Vajda added a comment - That would work just as well ! Andi..
        Hide
        mikemccand Michael McCandless added a comment -

        Thanks Andi. What would you think of just exposing incRef() & decRef() as expert public methods? – Yonik suggested this on java-dev.

        We would just add ensureOpen() to those methods and make them public.

        Show
        mikemccand Michael McCandless added a comment - Thanks Andi. What would you think of just exposing incRef() & decRef() as expert public methods? – Yonik suggested this on java-dev. We would just add ensureOpen() to those methods and make them public.

          People

          • Assignee:
            mikemccand Michael McCandless
            Reporter:
            vajda Andi Vajda
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development