You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Sunny Chan (JIRA)" <ji...@apache.org> on 2017/12/01 04:31:01 UTC

[jira] [Created] (IGNITE-7083) Reduce memory usage of CachePartitionFullCountersMap

Sunny Chan created IGNITE-7083:
----------------------------------

             Summary: Reduce memory usage of CachePartitionFullCountersMap
                 Key: IGNITE-7083
                 URL: https://issues.apache.org/jira/browse/IGNITE-7083
             Project: Ignite
          Issue Type: Improvement
          Components: cache
    Affects Versions: 2.3
         Environment: Any
            Reporter: Sunny Chan


The Cache Partition Exchange Manager kept a copy of the already completed exchange. However, we have found that it uses a significant amount of memory. Upon further investigation using heap dump we have found that a large amount of memory is used by the CachePartitionFullCountersMap. We have also observed in most cases, these maps contains only 0s.

Therefore I propose an optimization for this: Initially the long arrays to store initial update counter and update counter in the CPFCM will be null, and when you get the value and see these tables are null then we will return 0 for the counter. We only allocate the long arrays when there is any non-zero updates to the the map.

In our tests, the amount of heap used by GridCachePartitionExchangeManager was around 70MB (67 copies of these CPFCM), after we apply the optimization it drops to around 9MB.




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

RE: [jira] [Created] (IGNITE-7083) Reduce memory usage of CachePartitionFullCountersMap

Posted by "Sunny Chan, CLSA" <su...@clsa.com>.
I have created a pull request for my proposed change.

https://github.com/apache/ignite/pull/3152

-----Original Message-----
From: Denis Magda [mailto:dmagda@apache.org] 
Sent: Saturday, December 02, 2017 3:10 AM
To: dev@ignite.apache.org; Semen Boikov; Alexey Goncharuk
Subject: Fwd: [jira] [Created] (IGNITE-7083) Reduce memory usage of CachePartitionFullCountersMap

Ignite, especially Sam and Alex G., what’d you think about this?

—
Denis

> Begin forwarded message:
> 
> From: "Sunny Chan (JIRA)" <ji...@apache.org>
> Subject: [jira] [Created] (IGNITE-7083) Reduce memory usage of CachePartitionFullCountersMap
> Date: November 30, 2017 at 8:31:01 PM PST
> To: dev@ignite.apache.org
> Reply-To: dev@ignite.apache.org
> 
> Sunny Chan created IGNITE-7083:
> ----------------------------------
> 
>             Summary: Reduce memory usage of CachePartitionFullCountersMap
>                 Key: IGNITE-7083
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7083
>             Project: Ignite
>          Issue Type: Improvement
>          Components: cache
>    Affects Versions: 2.3
>         Environment: Any
>            Reporter: Sunny Chan
> 
> 
> The Cache Partition Exchange Manager kept a copy of the already completed exchange. However, we have found that it uses a significant amount of memory. Upon further investigation using heap dump we have found that a large amount of memory is used by the CachePartitionFullCountersMap. We have also observed in most cases, these maps contains only 0s.
> 
> Therefore I propose an optimization for this: Initially the long arrays to store initial update counter and update counter in the CPFCM will be null, and when you get the value and see these tables are null then we will return 0 for the counter. We only allocate the long arrays when there is any non-zero updates to the the map.
> 
> In our tests, the amount of heap used by GridCachePartitionExchangeManager was around 70MB (67 copies of these CPFCM), after we apply the optimization it drops to around 9MB.
> 
> 
> 
> 
> --
> This message was sent by Atlassian JIRA
> (v6.4.14#64029)

The content of this communication is intended for the recipient and is subject to CLSA Legal and Regulatory Notices.
These can be viewed at https://www.clsa.com/disclaimer.html or sent to you upon request.
CLSA is ISO14001 certified and committed to reducing environmental impact.

Fwd: [jira] [Created] (IGNITE-7083) Reduce memory usage of CachePartitionFullCountersMap

Posted by Denis Magda <dm...@apache.org>.
Ignite, especially Sam and Alex G., what’d you think about this?

—
Denis

> Begin forwarded message:
> 
> From: "Sunny Chan (JIRA)" <ji...@apache.org>
> Subject: [jira] [Created] (IGNITE-7083) Reduce memory usage of CachePartitionFullCountersMap
> Date: November 30, 2017 at 8:31:01 PM PST
> To: dev@ignite.apache.org
> Reply-To: dev@ignite.apache.org
> 
> Sunny Chan created IGNITE-7083:
> ----------------------------------
> 
>             Summary: Reduce memory usage of CachePartitionFullCountersMap
>                 Key: IGNITE-7083
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7083
>             Project: Ignite
>          Issue Type: Improvement
>          Components: cache
>    Affects Versions: 2.3
>         Environment: Any
>            Reporter: Sunny Chan
> 
> 
> The Cache Partition Exchange Manager kept a copy of the already completed exchange. However, we have found that it uses a significant amount of memory. Upon further investigation using heap dump we have found that a large amount of memory is used by the CachePartitionFullCountersMap. We have also observed in most cases, these maps contains only 0s.
> 
> Therefore I propose an optimization for this: Initially the long arrays to store initial update counter and update counter in the CPFCM will be null, and when you get the value and see these tables are null then we will return 0 for the counter. We only allocate the long arrays when there is any non-zero updates to the the map.
> 
> In our tests, the amount of heap used by GridCachePartitionExchangeManager was around 70MB (67 copies of these CPFCM), after we apply the optimization it drops to around 9MB.
> 
> 
> 
> 
> --
> This message was sent by Atlassian JIRA
> (v6.4.14#64029)