[
https://issues.apache.org/jira/browse/CASSANDRA-9194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14505980#comment-14505980
]
Jim Witschey commented on CASSANDRA-9194:
-----------------------------------------
[~benedict] I think I understand now; thanks for the explanation.
I've [changed the
test|https://github.com/mambocab/cassandra-dtest/commit/25ee5b7050e96a85cd4e33eadc41a21cec7da393]
so that it checks {{MemtableOnHeapSize}} for versions >= 2.1 and
{{MemtableDataSize}} for 2.0. As you indicated, it passes on 2.1.4 and trunk.
It currently fails on 2.0.4.
I can't seem to apply your patch to 2.0; it looks like it was written for 2.1?
But I'm +1 on the same logic applied to 2.0 if it passes the dtest.
> Delete-only workloads crash Cassandra
> -------------------------------------
>
> Key: CASSANDRA-9194
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9194
> Project: Cassandra
> Issue Type: Bug
> Environment: 2.0.14
> Reporter: Robert Wille
> Assignee: Benedict
> Fix For: 2.0.15
>
> Attachments: 9194.txt
>
>
> The size of a tombstone is not properly accounted for in the memtable. A
> memtable which has only tombstones will never get flushed. It will grow until
> the JVM runs out of memory. The following program easily demonstrates the
> problem.
> {code}
> Cluster.Builder builder = Cluster.builder();
>
> Cluster c =
> builder.addContactPoints("cas121.devf3.com").build();
>
> Session s = c.connect();
>
> s.execute("CREATE KEYSPACE IF NOT EXISTS test WITH replication
> = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }");
> s.execute("CREATE TABLE IF NOT EXISTS test.test(id INT PRIMARY
> KEY)");
> PreparedStatement stmt = s.prepare("DELETE FROM test.test WHERE
> id = :id");
> int id = 0;
>
> while (true)
> {
> s.execute(stmt.bind(id));
>
> id++;
> }{code}
> This program should run forever, but eventually Cassandra runs out of heap
> and craps out. You needn't wait for Cassandra to crash. If you run "nodetool
> cfstats test.test" while it is running, you'll see Memtable cell count grow,
> but Memtable data size will remain 0.
> This issue was fixed once before. I received a patch for version 2.0.5 (I
> believe), which contained the fix, but the fix has apparently been lost,
> because it is clearly broken, and I don't see the fix in the change logs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)