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

Allow dropping COMPACT STORAGE flag from tables in 3.X

    XMLWordPrintableJSON

Details

    • Clients

    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

              ifesdjeen Alex Petrov
              aleksey Aleksey Yeschenko
              Alex Petrov
              Sylvain Lebresne
              Votes:
              1 Vote for this issue
              Watchers:
              26 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: