lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-3360) Move FieldCache to IndexReader
Date Wed, 17 Aug 2011 12:20:51 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-3360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13086258#comment-13086258
] 

Michael McCandless commented on LUCENE-3360:
--------------------------------------------

I actually prefer the name AtomicFieldCache, since this matches other
places (eg. AtomicReaderContext), and because it's not necessarily a
segment (SlowMultiReaderWrapper returns an instance).

The name SegmentFieldCacheImpl seems OK, but can't this class be
package private?

I love the name InsaneFieldCache!

For the new IR.getFieldCache() instead of a "generic" UOE can we throw
something like MR.fields() throws?  Ie the exc message should explain
that you should use the SlowMRWrapper instead.

I'm nervous about how the [deprecated] FC makes a new SlowMRWrapper()
for each getXXX call -- I think this class uses "this" as the
getFieldCacheKey?  Won't this mean each lookup will build a new cache
entry?  (Hmm... but then why don't tests fail... I think we have at
least one test verifying same instance is returned for 2 calls in a
row).


> Move FieldCache to IndexReader
> ------------------------------
>
>                 Key: LUCENE-3360
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3360
>             Project: Lucene - Java
>          Issue Type: Improvement
>            Reporter: Martijn van Groningen
>             Fix For: 3.4, 4.0
>
>         Attachments: LUCENE-3360.patch, LUCENE-3360.patch, LUCENE-3360.patch
>
>
> Move the static FieldCache.DEFAULT field instance to atomic IndexReaders, so that FieldCache
insanity caused by the WeakHashMap no longer occurs.
> * Add a new method to IndexReader that by default throws an UOE:
> {code}public FieldCache getFieldCache(){code}
> * The SegmentReader implements this method and returns its own internal FieldCache implementation.
This implementation just uses a HashMap<Entry<T>,Object>> to store entries.
> * The SlowMultiReaderWrapper implements this method as well and basically behaves the
same as the current FieldCacheImpl.
> This issue won't solve the insanity that comes from inconsistent usage of a single field
(for example retrieve both int[] and DocTermIndex for the same field). 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message