[ 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]