cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (Commented) (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-4093) schema_* CFs do not respect column comparator which leads to CLI commands failure.
Date Fri, 30 Mar 2012 15:50:28 GMT


Jonathan Ellis commented on CASSANDRA-4093:

The thing about backwards-compatibility hacks is you tend to get stuck with them.  I'm okay
with any of these alternatives:

# Add a big huge warning to NEWS that this corner case is not supported to 1.1, but an alternative
solution for "tagging" will be supported eventually.  Fail 1.1 startup if such a schema startup
is detected and explain the new limitation
# Wait until we actually have indexes on composite PKs supported to release 1.1
# Ask users@ if anyone actually has such a use case in production, and go with 1 or 2 based
on the responses

Here is why I'm willing to go scorched earth on this:

- Schema design is *the* most difficult thing to explain to new Cassandra users. We've made
*huge* strides towards simplifying this in CQL3 and composite PKs. I don't think we can afford
to dilute this with footnotes about how you can escape hatch back to the old world, dragging
in all our old legacy baggage again. Put another way: it's time to bury "wtf is a supercolumn"
once and for all.
- Of our hundreds of deployments of 0.8 and 1.0, I can live with one or two needing to wait
for 1.1.2 or whatever to upgrade.  We have a pretty good feel at this point for commonly used
features and this isn't one of those.

TLDR: backwards compatibility in this specific case is high cost, low benefit.
> schema_* CFs do not respect column comparator which leads to CLI commands failure.
> ----------------------------------------------------------------------------------
>                 Key: CASSANDRA-4093
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 1.1.0
>            Reporter: Dave Brosius
>            Assignee: Sylvain Lebresne
>             Fix For: 1.1.0
>         Attachments: 4093.txt, CASSANDRA-4093-CD-changes.patch
> ColumnDefinition.{ascii, utf8, bool, ...} static methods used to initialize schema_*
CFs column_metadata do not respect CF comparator and use ByteBufferUtil.bytes(...) for column
names which creates problems in CLI and probably in other places.
> The CompositeType validator throws exception on first column
> String columnName = columnNameValidator.getString(;
> Because it appears the composite type length header is wrong (25455)
> AbstractCompositeType.getWithShortLength
> java.lang.IllegalArgumentException
> 	at java.nio.Buffer.limit(
> 	at org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(
> 	at org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(
> 	at org.apache.cassandra.db.marshal.AbstractCompositeType.getString(
> 	at org.apache.cassandra.cli.CliClient.describeColumnFamily(
> 	at org.apache.cassandra.cli.CliClient.describeKeySpace(
> 	at org.apache.cassandra.cli.CliClient.executeShowKeySpaces(
> (seen in trunk)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message