[
https://issues.apache.org/jira/browse/CASSANDRA-13533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16023753#comment-16023753
]
Joel Knighton commented on CASSANDRA-13533:
-------------------------------------------
As a concrete example, something like the following would suffice to show the
interning issue on all active branches.
{code}
@Test
public void testInterningUsesMinimalByteBuffer()
{
byte[] bytes = new byte[2];
bytes[0] = 0x63;
ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
byteBuffer.limit(1);
ColumnIdentifier c1 = ColumnIdentifier.getInterned(byteBuffer,
UTF8Type.instance);
Assert.assertEquals(2, byteBuffer.capacity());
Assert.assertEquals(1, c1.bytes.capacity());
}
{code}
What do you think, [~eduard.tudenhoefner]?
> ColumnIdentifier object size wrong when tables are not flushed
> --------------------------------------------------------------
>
> Key: CASSANDRA-13533
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13533
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Eduard Tudenhoefner
> Assignee: Eduard Tudenhoefner
> Fix For: 3.0.14, 3.11.0, 4.0
>
> Attachments: columnidentifier.png
>
>
> It turns out that the object size of {{ColumnIdentifier}} is wrong when
> *cassandra.test.flush_local_schema_changes: false*. This looks like stuff is
> being wrongly reused when no flush is happening.
> We only noticed this because we were using the prepared stmt cache and
> noticed that prepared statements would account for *1-6mb* when
> *cassandra.test.flush_local_schema_changes: false*. With
> *cassandra.test.flush_local_schema_changes: true* (which is the default)
> those would be around *5000 bytes*.
> Attached is a test that reproduces the problem and also a fix.
> Also after talking to [~jkni] / [~blerer] we shouldn't probably take
> {{ColumnDefinition}} into account when measuring object sizes with
> {{MemoryMeter}}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]