Mikhail, Seems, This can solve "slow reentrantLock" issue, at least at creation stage.
On Wed, May 31, 2017 at 3:04 PM, Mikhail Cherkasov <mcherka...@gridgain.com> wrote: > Hi all, > > All DataStructures are stored in one Map which itself is stored in > utilityCache, this makes high contention on DS creation or removing, it > requires to acquire Map's lock and manipulation with the Map under the > lock. So all threads in cluster should wait for this lock to create or > remove DS. > > I don't see any reason to store all DS in one map, we already have > utilityCache and can save DSs directly in utilityCache, to distinguish DS > with other objects in utilityCache I use composite key, the first part of > which is DATA_STRUCTURES_KEY, second one is DS's name, also DS type can be > added, this will allow us to create different DS with the same name. > > There is draft implementations, all DSs are stored with unique key in > utilityCache: > https://github.com/apache/ignite/pull/2046/files > > May be there's some reason to store all DS in one Map that I missed? > Any thoughts? > > > -- > Thanks, > Mikhail. >