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

Immutable Suggester impls. should be immutable

    XMLWordPrintableJSON

    Details

    • Type: Wish
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.6.1, 4.0, 4.1
    • Fix Version/s: 4.9, 6.0
    • Component/s: modules/other
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      Currently we have a very clumsy interface to build and load the Suggesters that are immutable. All our FST impls must be somewhat pre-build and then loaded. But currently the code doesn't declare the fst member as final and lets you change it at any time. ie you can always call load / build. This makes safe publication tricky and required custom code to make this reasonable. Ie. you have as suggester that can reload it's dict every 20 min. Now if you want to swap this in once loaded you can create a new Lookup instance and assign it to a member in your app. Yet this member needs to be volatile otherwise threads won't fetch all the memory and you can run into NPE exceptions since the fst member is not final. I'd not want to pay the price for this volatile read in a suggest env since its really read-only.

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated: