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

Shad Storhaug resolved LUCENENET-610.
-------------------------------------
    Resolution: Fixed

Fixed @ GitHub: https://github.com/apache/lucenenet/issues/272

> Reduce locking in FieldCacheImpl::Cache::Get
> --------------------------------------------
>
>                 Key: LUCENENET-610
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-610
>             Project: Lucene.Net
>          Issue Type: Improvement
>          Components: Lucene.Net Core
>    Affects Versions: Lucene.Net 4.8.0
>            Reporter: Thomas Mathew
>            Priority: Minor
>              Labels: up-for-grabs
>
> We noticed a lot of contention in FieldCacheImpl::Cache::Get (our queries use 
> a lot of query time joins + sorting, so we hit the field cache a lot).
> We use a SearcherManager with warm-up queries to populate the field cache so 
> we would expect it to be initialized in most cases before we hit it for 
> actual requests.
> The implementation seems to lock even for the happy path (when everything's 
> already initialized). This seems like a by-product of the choice of data 
> structures (the underlying WeakDictionary, WeakHashMap etc are not 
> threadsafe) and so the locking is required in case the dictionary gets 
> resized.
> Ideally we could be using thread-safe data structures and only lock when 
> initializing the data.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to