Aleksey Yeschenko created CASSANDRA-11502:
---------------------------------------------
Summary: 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)