[ https://issues.apache.org/jira/browse/LUCENE-3761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13205632#comment-13205632 ]
Simon Willnauer commented on LUCENE-3761: ----------------------------------------- bq. Hmm, I would prefer sticking with simple synchronized methods here... swapSearcher is called once during reopen, and by definition called from a single thread, so it will be uncontended. The added cost is surely minor, while keeping the code simple. I didn't raise this due to perf reasons. I think using AtomicRef make is simpler since it encapsulates everything rather than using synchronized + volatile we'd replace this: {code} final G oldThingy = current; current = newThingy; release(oldThingy); {code} with: {code} release(atomicRef.getAndSet(newThingy)); {code} seems simpler to me though... for read access you simply call atomicRef.get() > Generalize SearcherManager > -------------------------- > > Key: LUCENE-3761 > URL: https://issues.apache.org/jira/browse/LUCENE-3761 > Project: Lucene - Java > Issue Type: Improvement > Components: core/search > Reporter: Shai Erera > Assignee: Shai Erera > Priority: Minor > Fix For: 3.6, 4.0 > > Attachments: LUCENE-3761.patch, LUCENE-3761.patch > > > I'd like to generalize SearcherManager to a class which can manage instances > of a certain type of interfaces. The reason is that today SearcherManager > knows how to handle IndexSearcher instances. I have a SearcherManager which > manages a pair of IndexSearcher and TaxonomyReader pair. > Recently, few concurrency bugs were fixed in SearcherManager, and I realized > that I need to apply them to my version as well. Which led me to think why > can't we have an SM version which is generic enough so that both my version > and Lucene's can benefit from? > The way I see SearcherManager, it can be divided into two parts: (1) the part > that manages the logic of acquire/release/maybeReopen (i.e., ensureOpen, > protect from concurrency stuff etc.), and (2) the part which handles > IndexSearcher, or my SearcherTaxoPair. I'm thinking that if we'll have an > interface with incRef/decRef/tryIncRef/maybeRefresh, we can make > SearcherManager a generic class which handles this interface. > I will post a patch with the initial idea, and we can continue from there. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org