You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Anton Vinogradov <av...@gridgain.com> on 2015/07/23 18:23:45 UTC

Finished work on IGNITE-630 (Refactor GridMetadataAwareAdapter to use array)

Previously GridMetadataAwareAdapter used LeanMap to store entry's metadata.
But LeanMap was not so lean as expected.

I've created test (GridMetadataAwareAdapterLoadSelfTest) shows how much
time and memory need to create 1_000_000 GridCacheMockEntry.

Each case creates 1_000_000 entries and adds meta as described:

LeanMap (initial implementation)

all 10 keys [time=5140 ms, memory=940.3 mb]

all 3 keys [time=1748 ms, memory=176.3 mb]

first key only [time=968 ms, memory=97.9 mb]

second key only [time=902 ms, memory=97.9 mb]

third key only [time=953 ms, memory=97.9 mb]

tenth key only [time=988 ms, memory=97.9 mb]

random (1-3) key [time=1041 ms, memory=97.9 mb]

no meta [time=276 ms, memory=39.1 mb]

first key is random UUID, second is random UUID too and so on...


I've changed LeanMap to regular array and gain these results:

all 10 keys [time=1410 ms, memory=78.6 mb]

all 3 keys [time=801 ms, memory=39.3 mb]

first key only [time=636 ms, memory=39.3 mb]

second key only [time=722 ms, memory=39.3 mb]

third key only [time=750 ms, memory=39.3 mb]

tenth key only [time=765 ms, memory=78.6 mb]

random (1-3) key [time=664 ms, memory=39.3 mb]

no meta [time=173 ms, memory=19.6 mb]

first key is 0, second is 1 and so on...

Currently maximum key index used to create meta is 2, so results should be
compared at "all 3 keys", "third key only" and "no meta" cases.

So, extra costs was reduced.

Re: Finished work on IGNITE-630 (Refactor GridMetadataAwareAdapter to use array)

Posted by Dmitriy Setrakyan <ds...@apache.org>.
On Thu, Jul 23, 2015 at 9:23 AM, Anton Vinogradov <av...@gridgain.com>
wrote:

> Previously GridMetadataAwareAdapter used LeanMap to store entry's metadata.
> But LeanMap was not so lean as expected.
>

Thanks Anton! It looked pretty lean to me when I originally developed it :)


>
> I've created test (GridMetadataAwareAdapterLoadSelfTest) shows how much
> time and memory need to create 1_000_000 GridCacheMockEntry.
>
> Each case creates 1_000_000 entries and adds meta as described:
>
> LeanMap (initial implementation)
>
> all 10 keys [time=5140 ms, memory=940.3 mb]
>
> all 3 keys [time=1748 ms, memory=176.3 mb]
>
> first key only [time=968 ms, memory=97.9 mb]
>
> second key only [time=902 ms, memory=97.9 mb]
>
> third key only [time=953 ms, memory=97.9 mb]
>
> tenth key only [time=988 ms, memory=97.9 mb]
>
> random (1-3) key [time=1041 ms, memory=97.9 mb]
>
> no meta [time=276 ms, memory=39.1 mb]
>
> first key is random UUID, second is random UUID too and so on...
>
>
> I've changed LeanMap to regular array and gain these results:
>
> all 10 keys [time=1410 ms, memory=78.6 mb]
>
> all 3 keys [time=801 ms, memory=39.3 mb]
>
> first key only [time=636 ms, memory=39.3 mb]
>
> second key only [time=722 ms, memory=39.3 mb]
>
> third key only [time=750 ms, memory=39.3 mb]
>
> tenth key only [time=765 ms, memory=78.6 mb]
>
> random (1-3) key [time=664 ms, memory=39.3 mb]
>
> no meta [time=173 ms, memory=19.6 mb]
>
> first key is 0, second is 1 and so on...
>
> Currently maximum key index used to create meta is 2, so results should be
> compared at "all 3 keys", "third key only" and "no meta" cases.
>
> So, extra costs was reduced.
>