Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-6831

Updates to COMPACT STORAGE tables via cli drop CQL information

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Low
    • Resolution: Fixed
    • Fix Version/s: 1.2.17, 2.0.8, 2.1 beta2
    • Component/s: None
    • Labels:
      None
    • Severity:
      Low

      Description

      If a COMPACT STORAGE table is altered using the CLI all information about the column names reverts to the initial "key, column1, column2" namings. Additionally, the changes in the columns name will not take effect until the Cassandra service is restarted. This means that the clients using CQL will continue to work properly until the service is restarted, at which time they will start getting errors about non-existant columns in the table.

      When attempting to rename the columns back using ALTER TABLE an error stating the column already exists will be raised. The only way to get it back is to ALTER TABLE and change the comment or something, which will bring back all the original column names.

      This seems to be related to CASSANDRA-6676 and CASSANDRA-6370

      In cqlsh

      Connected to cluster1 at 127.0.0.3:9160.
      [cqlsh 3.1.8 | Cassandra 1.2.15-SNAPSHOT | CQL spec 3.0.0 | Thrift protocol 19.36.2]
      Use HELP for help.
      cqlsh> CREATE KEYSPACE test WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };
      cqlsh> USE test;
      cqlsh:test> CREATE TABLE foo (bar text, baz text, qux text, PRIMARY KEY(bar, baz) ) WITH COMPACT STORAGE;
      cqlsh:test> describe table foo;
      
      CREATE TABLE foo (
        bar text,
        baz text,
        qux text,
        PRIMARY KEY (bar, baz)
      ) WITH COMPACT STORAGE AND
        bloom_filter_fp_chance=0.010000 AND
        caching='KEYS_ONLY' AND
        comment='' AND
        dclocal_read_repair_chance=0.000000 AND
        gc_grace_seconds=864000 AND
        read_repair_chance=0.100000 AND
        replicate_on_write='true' AND
        populate_io_cache_on_flush='false' AND
        compaction={'class': 'SizeTieredCompactionStrategy'} AND
        compression={'sstable_compression': 'SnappyCompressor'};
      

      Now in cli:

        Connected to: "cluster1" on 127.0.0.3/9160
      Welcome to Cassandra CLI version 1.2.15-SNAPSHOT
      
      Type 'help;' or '?' for help.
      Type 'quit;' or 'exit;' to quit.
      
      [default@unknown] use test;
      Authenticated to keyspace: test
      [default@test] UPDATE COLUMN FAMILY foo WITH comment='hey this is a comment';
      3bf5fa49-5d03-34f0-b46c-6745f7740925
      

      Now back in cqlsh:

      cqlsh:test> describe table foo;
      
      CREATE TABLE foo (
        bar text,
        column1 text,
        value text,
        PRIMARY KEY (bar, column1)
      ) WITH COMPACT STORAGE AND
        bloom_filter_fp_chance=0.010000 AND
        caching='KEYS_ONLY' AND
        comment='hey this is a comment' AND
        dclocal_read_repair_chance=0.000000 AND
        gc_grace_seconds=864000 AND
        read_repair_chance=0.100000 AND
        replicate_on_write='true' AND
        populate_io_cache_on_flush='false' AND
        compaction={'class': 'SizeTieredCompactionStrategy'} AND
        compression={'sstable_compression': 'SnappyCompressor'};
      
      cqlsh:test> ALTER TABLE foo WITH comment='this is a new comment';
      cqlsh:test> describe table foo;
      
      CREATE TABLE foo (
        bar text,
        baz text,
        qux text,
        PRIMARY KEY (bar, baz)
      ) WITH COMPACT STORAGE AND
        bloom_filter_fp_chance=0.010000 AND
        caching='KEYS_ONLY' AND
        comment='this is a new comment' AND
        dclocal_read_repair_chance=0.000000 AND
        gc_grace_seconds=864000 AND
        read_repair_chance=0.100000 AND
        replicate_on_write='true' AND
        populate_io_cache_on_flush='false' AND
        compaction={'class': 'SizeTieredCompactionStrategy'} AND
        compression={'sstable_compression': 'SnappyCompressor'};
      

        Attachments

        1. 6831-nits.txt
          9 kB
          Aleksey Yeschenko
        2. 6831-2.1.patch
          8 kB
          Mikhail Stepura
        3. 6831-2.0-v2.txt
          10 kB
          Sylvain Lebresne
        4. 6831-1.2.patch
          3 kB
          Mikhail Stepura
        5. 0001-Properly-recompute-denseness-of-the-table-on-thrift-up.txt
          11 kB
          Sylvain Lebresne

          Activity

            People

            • Assignee:
              slebresne Sylvain Lebresne
              Reporter:
              devdazed Russell Bradberry
              Authors:
              Sylvain Lebresne
              Reviewers:
              Aleksey Yeschenko
            • Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: