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

Benjamin Lerer updated CASSANDRA-8231:
--------------------------------------
    Attachment: CASSANDRA-8231.txt

This patch replace the jamm version 0.2.8 by the version 0.3.0 which support 
the {{Unmetered}} annotation on type.

The {{ignoreKnownSingleton}} option of {{MemoryMeter}} was already excluding 
{{Class}} and {{Enum}} instances. So only the {{CFMetadata}}, {{AbstractType}} 
and {{Function}} had to be marked with the {{Unmetered}} annotation. 

I used the {{enableDebug}} option from {{MemoryMeter}} to verify that the 
measured instances were the expected ones. 

> Wrong size of cached prepared statements
> ----------------------------------------
>
>                 Key: CASSANDRA-8231
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8231
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Jaroslav Kamenik
>            Assignee: Benjamin Lerer
>         Attachments: 8231-notes.txt, CASSANDRA-8231.txt, Unsafes.java
>
>
> Cassandra counts memory footprint of prepared statements for caching 
> purposes. It seems, that there is problem with some statements, ie 
> SelectStatement. Even simple selects is counted as 100KB object, updates, 
> deletes etc have few hundreds or thousands bytes. Result is that cache - 
> QueryProcessor.preparedStatements  - holds just fraction of statements..
> I dig a little into the code, and it seems that problem is in jamm in class 
> MemoryMeter. It seems that if instance contains reference to class, it counts 
> size of whole class too. SelectStatement references EnumSet through 
> ResultSet.Metadata and EnumSet holds reference to Enum class...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to