[ 
https://issues.apache.org/jira/browse/LUCENE-831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hoss Man updated LUCENE-831:
----------------------------

    Attachment: fieldcache-overhaul.diff


This is based on an idea i had a few months ago and was recently reminded of 
because of several mail threads about FieldCache .. so i started fleshing it 
out on the plane last week.

I'm not entirely happy with it in it's current state, but I wanted to post it 
and see what people think of the overall approach.

if people like the direction this is going, I would definitely appreciate some 
help with API critique and good unit tests (so far i've been relying solely on 
the existing Unit Tests to validate that i'm not breaking anything -- but that 
doesn't really prove that the new APIs work the way they are intended to)


TODO List

 * lots of little :TODO:s in code, mainly about javadocs
 * add merge methods to StringIndexCacheKey 
   (a bit complicated, but should be possible/efficient)
 * figure out if there is any better way of dealing with 
   SortComparatorCacheKey and the visibility issues of 
   SortComparator.getComparable 
 * change norm caching to use new caches (if not the same 
   main cache, then at least the same classes in a private cache)
 * write an ass load more tests
 * is there a better way to deal with merging then to pass starts[] ?  
   (pass a new datastructure encapsulating starts/subReaders?)
 * CacheFactory seemed like a good idea initially so that MultiReader 
   on a multi-segment index could cascade down, but what if people 
   only want caching at the outermost level (regardless of wether 
   the key is mergable) ... factory can't assuming anything if reader 
   is not an instance of MultiReader
 * audit/change all core code using FieldCache to use new API
 * performance test that this doesn't hurt things in some way.



> Complete overhaul of FieldCache API/Implementation
> --------------------------------------------------
>
>                 Key: LUCENE-831
>                 URL: https://issues.apache.org/jira/browse/LUCENE-831
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Search
>            Reporter: Hoss Man
>         Attachments: fieldcache-overhaul.diff
>
>
> Motivation:
> 1) Complete overhaul the API/implementation of "FieldCache" type things...
>     a) eliminate global static map keyed on IndexReader (thus
>         eliminating synch block between completley independent IndexReaders)
>     b) allow more customization of cache management (ie: use 
>         expiration/replacement strategies, disk backed caches, etc)
>     c) allow people to define custom cache data logic (ie: custom
>         parsers, complex datatypes, etc... anything tied to a reader)
>     d) allow people to inspect what's in a cache (list of CacheKeys) for
>         an IndexReader so a new IndexReader can be likewise warmed. 
>     e) Lend support for smarter cache management if/when
>         IndexReader.reopen is added (merging of cached data from subReaders).
> 2) Provide backwards compatibility to support existing FieldCache API with
>     the new implementation, so there is no redundent caching as client code
>     migrades to new API.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to