You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Oleg Anastasyev (JIRA)" <ji...@apache.org> on 2013/09/23 12:01:02 UTC

[jira] [Updated] (CASSANDRA-6077) SSTableMetadata.min(max)ColumnNames keep whole SlabAllocatior region referenced; wasting memory

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

Oleg Anastasyev updated CASSANDRA-6077:
---------------------------------------

    Attachment: ColumnNameHelper.diff
    
> SSTableMetadata.min(max)ColumnNames keep whole SlabAllocatior region referenced; wasting memory
> -----------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-6077
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6077
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Oleg Anastasyev
>         Attachments: ColumnNameHelper.diff
>
>
> .. which could be a problem when there is a lot of sstables, when using LCS for example.
> SSTableWriter calls SSTableMetadata.Collector.updateMin(Max)ColumnNames passing List of ByteByffers which reference a small byte array in slab region.
> ColumnNameHelper.mergeMin(Max) just returns a reference of column name back to SSTableMetadata. So the latter keeps whole slab region referenced, preventing it from being GCed. 
> Fixed it by making copies of column name bytebuffer, if its size more than column name itself.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira