Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use ConcurrentSkipListMap in Model for knowledge
The knowledge cache previously used a synchronized IdentityMap to cache knowledge indexes. ConcurrentHashMap was not used because computeIfAbsent needed to be called recursively when creating indexes, and that doesn't work with ConcurrentHashMap. However, ConcurrentSkipListMap can be work with recursive calls to computeIfAbsent.
- Loading branch information