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

Allow dropping COMPACT STORAGE flag from tables in 3.X

    XMLWordPrintableJSON

    Details

      Description

      Thrift allows users to define flexible mixed column families - where certain columns would have explicitly pre-defined names, potentially non-default validation types, and be indexed.

      Example:

      create column family foo
          and default_validation_class = UTF8Type
          and column_metadata = [
              {column_name: bar, validation_class: Int32Type, index_type: KEYS},
              {column_name: baz, validation_class: UUIDType, index_type: KEYS}
          ];
      

      Columns named bar and baz will be validated as Int32Type and UUIDType, respectively, and be indexed. Columns with any other name will be validated by UTF8Type and will not be indexed.

      With CASSANDRA-8099, bar and baz would be mapped to static columns internally. However, being WITH COMPACT STORAGE, the table will only expose bar and baz columns. Accessing any dynamic columns (any column not named bar and baz) right now requires going through Thrift.

      This is blocking Thrift -> CQL migration for users who have mixed dynamic/static column families. That said, it shouldn't be hard to allow users to drop the compact flag to expose the table as it is internally now, and be able to access all columns.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ifesdjeen Alex Petrov
                Reporter:
                aleksey Aleksey Yeschenko
                Authors:
                Alex Petrov
                Reviewers:
                Sylvain Lebresne
              • Votes:
                1 Vote for this issue
                Watchers:
                26 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: