Ivan Rakov created IGNITE-12508:
-----------------------------------
Summary: GridCacheProcessor#cacheDescriptor(int) has O(N)
complexity
Key: IGNITE-12508
URL: https://issues.apache.org/jira/browse/IGNITE-12508
Project: Ignite
Issue Type: Bug
Reporter: Ivan Rakov
Fix For: 2.9
See the method code:
{code}
@Nullable public DynamicCacheDescriptor cacheDescriptor(int cacheId) {
for (DynamicCacheDescriptor cacheDesc : cacheDescriptors().values()) {
CacheConfiguration ccfg = cacheDesc.cacheConfiguration();
assert ccfg != null : cacheDesc;
if (CU.cacheId(ccfg.getName()) == cacheId)
return cacheDesc;
}
return null;
}
{code}
This method is invoked in several hot paths which causes significant
performance regression when the number of caches is large, for example, logical
recovery and security check for indexing.
The method should be improved to use a hash map or similar data structure to
get a better complexity
--
This message was sent by Atlassian Jira
(v8.3.4#803005)