[ https://issues.apache.org/jira/browse/CASSANDRA-2708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13089027#comment-13089027 ]
Hudson commented on CASSANDRA-2708: ----------------------------------- Integrated in Cassandra-0.7 #540 (See [https://builds.apache.org/job/Cassandra-0.7/540/]) avoid retaining references to dropped CFS objects in CompactionManager.estimatedCompactions patch by Dan LaRocque; reviewed by jbellis for CASSANDRA-2708 jbellis : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1160436 Files : * /cassandra/branches/cassandra-0.7/CHANGES.txt * /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java > 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.0 > Reporter: Dan LaRocque > Assignee: Dan LaRocque > Priority: Minor > Fix For: 0.7.9 > > 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