[
https://issues.apache.org/jira/browse/CASSANDRA-10001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14661292#comment-14661292
]
Stefania commented on CASSANDRA-10001:
--------------------------------------
The encoding or decoding is fine. The problem is that we are using the
{{ColumnData}} comparator rather than the {{Cell}} comparator for reducing
cells. So spreading the map (or set) over more than one sstable (or memtable)
would result in the latest cells winning and the older being lost when merging
cells.
I also noticed {{CQLTester.flush()}} is not blocking and so I changed it to
blocking.
Patch [here|https://github.com/stef1927/cassandra/commits/10001-3.0].
I'll post the CI links as soon as they are available.
> Bug in encoding of sstables
> ---------------------------
>
> Key: CASSANDRA-10001
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10001
> Project: Cassandra
> Issue Type: Bug
> Reporter: T Jake Luciani
> Assignee: Stefania
> Priority: Blocker
> Fix For: 3.0 beta 1
>
>
> Fixing the compaction dtest I noticed we aren't encoding map data correctly
> in sstables.
> The following code fails from newly committed {{
> compaction_test.py:TestCompaction_with_SizeTieredCompactionStrategy.large_compaction_warning_test}}
> {code}
> session.execute("CREATE TABLE large(userid text PRIMARY KEY, properties
> map<int, text>) with compression = {}")
> for i in range(200): # ensures partition size larger than
> compaction_large_partition_warning_threshold_mb
>
>
> session.execute("UPDATE ks.large SET properties[%i] = '%s' WHERE
> userid = 'user'" % (i, get_random_word(strlen)))
> ret = session.execute("SELECT properties from ks.large where userid =
> 'user'")
> assert len(ret) == 1
> self.assertEqual(200, len(ret[0][0].keys()))
> {code}
> The last assert is failing with only 91 keys. The large values are causing
> flushes vs staying in the memtable so the issue is somewhere in the
> serialization of collections in sstables.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)