You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucenenet.apache.org by "Shad Storhaug (Jira)" <ji...@apache.org> on 2019/12/27 00:55:00 UTC
[jira] [Created] (LUCENENET-636) Port ConditionalWeakTable from
.NET Core 3.x to .NET Standard 2.0
Shad Storhaug created LUCENENET-636:
---------------------------------------
Summary: Port ConditionalWeakTable from .NET Core 3.x to .NET Standard 2.0
Key: LUCENENET-636
URL: https://issues.apache.org/jira/browse/LUCENENET-636
Project: Lucene.Net
Issue Type: Task
Components: Lucene.Net Core, Lucene.Net.Facet, Lucene.Net.Spatial, Lucene.Net.TestFramework
Affects Versions: Lucene.Net 4.8.0
Reporter: Shad Storhaug
As per LUCENENET-610, the WeakDictionary that has been created to support FieldCache and a few other Lucene.NET features does not perform well enough in highly concurrent environments.
The [ConditionalWeakTable<TKey, TValue>|https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.conditionalweaktable-2] is a suitable replacement on .NET Standard 2.1, but on .NET Standard 2.0, it doesn't expose the enumerator or the {{AddOrUpdate}} method. All of Lucene.NET's usages require one or the other.
So, it would definitely be worth the effort to port the full implementation to .NET Standard 2.0.
This port should be added to [J2N|https://github.com/NightOwl888/J2N] in the {{J2N.Runtime.CompilerServices}} namespace (to match .NET's namespace convention).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)