[ https://issues.apache.org/jira/browse/CASSANDRA-11502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15230525#comment-15230525 ]
Aleksey Yeschenko commented on CASSANDRA-11502: ----------------------------------------------- ||branch||testall||dtest|| |[11502-2.2|https://github.com/iamaleksey/cassandra/tree/11502-2.2]|[testall|http://cassci.datastax.com/view/Dev/view/iamaleksey/job/iamaleksey-11502-2.2-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/iamaleksey/job/iamaleksey-11502-2.2-dtest]| |[11502-3.0|https://github.com/iamaleksey/cassandra/tree/11502-3.0]|[testall|http://cassci.datastax.com/view/Dev/view/iamaleksey/job/iamaleksey-11502-3.0-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/iamaleksey/job/iamaleksey-11502-3.0-dtest]| 2.2 version makes sure we recalculate and remove redundant column. 3.0 versions preserves denseness, but cleans up unnecessary Thrift special casing from {{SchemaKeyspace::makeUpdateTableMutation}}. It's unnecessary because despite Thrift not knowing about non regular/static columns, {{ThriftConversion::internalFromThrift}} will include them from the current CFM, so we are not going to lose anything. > 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)