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

Don't call MergePolicy / IndexWriter during DWPT Flush

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.3, 6.0
    • Fix Version/s: 4.4, 6.0
    • Component/s: core/index
    • Labels:
      None
    • Lucene Fields:
      New, Patch Available

      Description

      We currently consult the indexwriter -> merge policy to decide if we need to write CFS or not which is bad in many ways.

      • we should call mergepolicy only during merges
      • we should never sync on IW during DWPT flush
      • we should be able to make the decision if we need to write CFS or not before flush, ie. we could write parts of the flush directly to CFS or even start writing stored fields directly.
      • in the NRT case it might make sense to write all flushes to CFS to minimize filedescriptors independent of the index size.

      I wonder if we can use a simple boolean for this in the IWC and get away with not consulting merge policy. This would simplify concurrency a lot here already.

        Attachments

        1. LUCENE-5038.patch
          70 kB
          Simon Willnauer
        2. LUCENE-5038.patch
          70 kB
          Simon Willnauer
        3. LUCENE-5038.patch
          48 kB
          Simon Willnauer
        4. LUCENE-5038.patch
          16 kB
          Simon Willnauer
        5. LUCENE-5038.patch
          14 kB
          Simon Willnauer
        6. LUCENE-5038.patch
          13 kB
          Simon Willnauer

          Issue Links

            Activity

              People

              • Assignee:
                simonw Simon Willnauer
                Reporter:
                simonw Simon Willnauer
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: