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

Integrate IndexReader with IndexWriter

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.4
    • Fix Version/s: 2.9
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      The current problem is an IndexReader and IndexWriter cannot be open
      at the same time and perform updates as they both require a write
      lock to the index. While methods such as IW.deleteDocuments enables
      deleting from IW, methods such as IR.deleteDocument(int doc) and
      norms updating are not available from IW. This limits the
      capabilities of performing updates to the index dynamically or in
      realtime without closing the IW and opening an IR, deleting or
      updating norms, flushing, then opening the IW again, a process which
      can be detrimental to realtime updates.

      This patch will expose an IndexWriter.getReader method that returns
      the currently flushed state of the index as a class that implements
      IndexReader. The new IR implementation will differ from existing IR
      implementations such as MultiSegmentReader in that flushing will
      synchronize updates with IW in part by sharing the write lock. All
      methods of IR will be usable including reopen and clone.

        Attachments

        1. ssd2.png
          42 kB
          Michael McCandless
        2. ssd.png
          39 kB
          Michael McCandless
        3. magnetic.png
          42 kB
          Michael McCandless
        4. LUCENE-1516.patch
          70 kB
          Jason Rutherglen
        5. LUCENE-1516.patch
          18 kB
          Jason Rutherglen
        6. LUCENE-1516.patch
          22 kB
          Jason Rutherglen
        7. LUCENE-1516.patch
          24 kB
          Jason Rutherglen
        8. LUCENE-1516.patch
          25 kB
          Jason Rutherglen
        9. LUCENE-1516.patch
          25 kB
          Jason Rutherglen
        10. LUCENE-1516.patch
          43 kB
          Jason Rutherglen
        11. LUCENE-1516.patch
          37 kB
          Jason Rutherglen
        12. LUCENE-1516.patch
          47 kB
          Jason Rutherglen
        13. LUCENE-1516.patch
          53 kB
          Jason Rutherglen
        14. LUCENE-1516.patch
          63 kB
          Jason Rutherglen
        15. LUCENE-1516.patch
          64 kB
          Jason Rutherglen
        16. LUCENE-1516.patch
          65 kB
          Jason Rutherglen
        17. LUCENE-1516.patch
          72 kB
          Jason Rutherglen
        18. LUCENE-1516.patch
          81 kB
          Jason Rutherglen
        19. LUCENE-1516.patch
          76 kB
          Jason Rutherglen
        20. LUCENE-1516.patch
          77 kB
          Jason Rutherglen
        21. LUCENE-1516.patch
          81 kB
          Jason Rutherglen
        22. LUCENE-1516.patch
          81 kB
          Jason Rutherglen
        23. LUCENE-1516.patch
          81 kB
          Jason Rutherglen
        24. LUCENE-1516.patch
          83 kB
          Jason Rutherglen
        25. LUCENE-1516.patch
          96 kB
          Jason Rutherglen
        26. LUCENE-1516.patch
          96 kB
          Jason Rutherglen
        27. LUCENE-1516.patch
          76 kB
          Michael McCandless
        28. LUCENE-1516.patch
          95 kB
          Michael McCandless
        29. LUCENE-1516.patch
          90 kB
          Michael McCandless
        30. LUCENE-1516.patch
          95 kB
          Michael McCandless
        31. LUCENE-1516.patch
          97 kB
          Michael McCandless

          Activity

            People

            • Assignee:
              mikemccand Michael McCandless
              Reporter:
              jasonrutherglen Jason Rutherglen
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 672h
                672h
                Remaining:
                Remaining Estimate - 672h
                672h
                Logged:
                Time Spent - Not Specified
                Not Specified