[ 
https://issues.apache.org/jira/browse/CASSANDRA-2708?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan LaRocque updated CASSANDRA-2708:
------------------------------------

    Attachment: cassandra-0.7-2708.txt

Attaching 3-line patch against cassandra-0.7 r1127675

> memory leak in CompactionManager's estimatedCompactions
> -------------------------------------------------------
>
>                 Key: CASSANDRA-2708
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2708
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.6
>            Reporter: Dan LaRocque
>            Priority: Minor
>         Attachments: cassandra-0.7-2708.txt
>
>
> CompactionManager's estimatedCompactions map seems to hold all or most 
> ColumnFamilyStores in the system as keys.  Keys are never removed from 
> estimatedCompactions.
> I have a project that embeds Cassandra as a storage backend.  Some of my 
> integration tests create and drop a single keyspace and pair of column 
> families a hundred or 150 times in one JVM.  These tests always OOM'd.  
> Loading some near-death heapdumps in mat suggested CompactionManager's 
> estimatedCompactions held over 80% of total heap via its ColumnFamilyStore 
> keys.  estimatedCompactions had the only inbound reference to these CFSs, and 
> the CFSs themselves had invalid = true.
> As a workaround, I changed estimatedCompactions to a WeakReference-keyed map 
> (using Guava MapMaker).  My integration tests no longer OOM.
> I'm generally unfamiliar with Cassandra's guts.  I don't know whether weak 
> referencing the keys of estimatedCompactions is correct (or ideal).  But, 
> that did seem to confirm my guess that retained references to dead CFSs in 
> estimatedCompactions were swamping my heap after lots of 
> Keyspace+ColumnFamily drops.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to