ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mikhail Cherkasov <mcherka...@gridgain.com>
Subject Re: contention on DataStructure creation/removing
Date Fri, 02 Jun 2017 13:57:24 GMT
Hi all,

I prepared a benchmark for ignite reentrant lock, the benchmark updates
cache values under the reentrant lock.
The benchmark is based on s real case, when user can't use regular cache
locks, because they
prevent partition map exchange and as result don't allow new nodes join
cluster.

Throughput plot without any changes:

[image: Inline image 1]

the same plot with patched ignite:

[image: Inline image 2]


On Thu, Jun 1, 2017 at 1:29 AM, Dmitriy Setrakyan <dsetrakyan@apache.org>
wrote:

> Won't it be confusing from a user stand point to have multiple data
> structures with the same name? Also, what is the performance impact of this
> change?
>
> D.
>
> On Wed, May 31, 2017 at 8:23 AM, Semyon Boikov <sboikov@gridgain.com>
> wrote:
>
> > Hi Mikhail,
> >
> > As far as I remember for some reason we wanted to guarantee that all data
> > structures have unique names. But now I don't see why this can be needed
> > and it seems we do not need this data structures map at all, if nobody
> have
> > objection I think you can implement suggested change.
> >
> > Thanks!
> >
> > On Wed, May 31, 2017 at 3:04 PM, Mikhail Cherkasov <
> > mcherkasov@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.
> > >
> >
>



-- 
Thanks,
Mikhail.

Mime
  • Unnamed multipart/related (inline, None, 0 bytes)
View raw message