[
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)