[ https://issues.apache.org/jira/browse/CASSANDRA-11502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Yeschenko updated CASSANDRA-11502: ------------------------------------------ Reviewer: Sylvain Lebresne Reproduced In: 2.2.5, 2.1.13 (was: 2.1.13, 2.2.5) Status: Patch Available (was: Open) > Fix denseness and column metadata updates coming from Thrift > ------------------------------------------------------------ > > Key: CASSANDRA-11502 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11502 > Project: Cassandra > Issue Type: Bug > Components: Distributed Metadata > Reporter: Aleksey Yeschenko > Assignee: Aleksey Yeschenko > Priority: Minor > Fix For: 2.2.x, 3.0.x, 3.x > > > It was > [decided|https://issues.apache.org/jira/browse/CASSANDRA-7744?focusedCommentId=14095472&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14095472] > that we'd be recalculating {{is_dense}} for table updates coming from Thrift > on every change. However, due to some oversight, {{is_dense}} can only go > from {{false}} to {{true}}. Once dense, even adding a {{REGULAR}} column will > not reset {{is_dense}} back to {{false}}. > The recalculation fails because no matter what happens, we never remove the > auto-generated {{CLUSTERING}} and {{COMPACT_VALUE}} columns of a dense table. > Which ultimately leads to the issue on 2.2 to 3.0 upgrade (see > CASSANDRA-11315). > What we should do is remove the special-case for Thrift in > {{LegacySchemaTables::makeUpdateTableMutation}} and correct the logic in > {{ThriftConversion::internalFromThrift}} to remove those columns when going > from dense to sparse. > This is not enough to fix CASSANDRA-11315, however, as we need to handle > pre-patch upgrades, and upgrades from 2.1. Fixing it in 2.2 means a) getting > proper schema from {{DESCRIBE}} now and b) using the more efficient > {{SparseCellNameType}} when you add columns. -- This message was sent by Atlassian JIRA (v6.3.4#6332)