lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mathew (JIRA)" <>
Subject [jira] [Created] (LUCENENET-610) Reduce locking in FieldCacheImpl::Cache::Get
Date Fri, 12 Jul 2019 22:38:00 GMT
Thomas Mathew created LUCENENET-610:

             Summary: Reduce locking in FieldCacheImpl::Cache::Get
                 Key: LUCENENET-610
             Project: Lucene.Net
          Issue Type: Improvement
          Components: Lucene.Net Core
    Affects Versions: Lucene.Net 4.8.0
            Reporter: Thomas Mathew

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
the field cache 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

This message was sent by Atlassian JIRA

View raw message