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 15:00:10 GMT
Looks like dev list doesn't allow to include pictures in emails, so there
are links to plots:

Throughput plot without any changes:
https://www.dropbox.com/s/mc3v5m49u4i2be3/no-changes.png?dl=0

the same plot with patched ignite:
https://www.dropbox.com/s/cyojw9nz4smew87/with-chages.png?dl=0

17000 operations/sec vs 70 operations/sec.

On Fri, Jun 2, 2017 at 4:57 PM, Mikhail Cherkasov <mcherkasov@gridgain.com>
wrote:

> 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.
>



-- 
Thanks,
Mikhail.

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