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

Fix SegmentInfo.attributes when updates are involved

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 4.6, 6.0
    • core/index
    • None
    • New, Patch Available

    Description

      Today, SegmentInfo.attributes are write-once. However, in the presence of field updates (see LUCENE-5189 and LUCENE-5215) this creates an issue, in which if a Codec decides to alter the attributes when updates are applied, they are silently discarded. This is rather a corner case, though one that should be addressed.

      There were two solutions to address this:

      1. Record SI.attributes in SegmentInfos, so they are written per-commit, instead of the .si file.
      2. Remove them altogether, as they don't seem to be used anywhere in Lucene code today.

      If we remove them, we basically don't take away special capability from Codecs, because they can still write the attributes to a separate file, or even the file they record the other data in. This will work even with updates, as long as Codecs respect the given segmentSuffix.

      If we keep them, I think the simplest solution is to read/write them by SegmentInfos. But if we don't see a good use case, I suggest we remove them, as it's just extra code to maintain. I think we can even risk a backwards break and remove them completely from 4x, though if that's a problem, we can deprecate too.

      If anyone sees a good usage for them, or better - already uses them, please speak up, so we can make the proper decision.

      Attachments

        1. LUCENE-5216.patch
          51 kB
          Shai Erera

        Activity

          People

            shaie Shai Erera
            shaie Shai Erera
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: