jal created CASSANDRA-4597:
------------------------------

             Summary: Impossible to set LeveledCompactionStrategy to a column 
family. 
                 Key: CASSANDRA-4597
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4597
             Project: Cassandra
          Issue Type: Bug
    Affects Versions: 1.1.1
         Environment: Ubuntu 12.04
cqlsh 2.2.0 | Cassandra 1.1.1 | CQL spec 3.0.0 | Thrift protocol 19.32.0
Cluster with only 1 node
            Reporter: jal


CFPropDefs.applyToCFMetadata() does not set the compaction class on CFM

When altering the compaction strategy of a column family to 
LeveledCompactionStrategy, the compaction strategy is not changed (the describe 
command shows that the SizeTieredCompactionStrategy is still set to the CF)
When creating a column family WITH 
compaction_strategy_class='LeveledCompactionStrategy', the compaction strategy 
class used is  SizeTieredCompactionStrategy

Ex : 
jal@jal-VirtualBox:~/cassandra/apache-cassandra-1.1.1/bin$ ./cqlsh -3
Connected to Test Cluster at localhost:9160.
[cqlsh 2.2.0 | Cassandra 1.1.1 | CQL spec 3.0.0 | Thrift protocol 19.32.0]
Use HELP for help.
cqlsh> use test1;
cqlsh:test1> describe table pns_credentials;

CREATE TABLE pns_credentials (
  ise text PRIMARY KEY,
  isnew int,
  ts timestamp,
  mergestatus int,
  infranetaccount text,
  user_level int,
  msisdn bigint,
  mergeusertype int
) WITH
  comment='' AND
  comparator=text AND
  read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  default_validation=text AND
  min_compaction_threshold=4 AND
  max_compaction_threshold=32 AND
  replicate_on_write='true' AND
  compaction_strategy_class='SizeTieredCompactionStrategy' AND
  compression_parameters:sstable_compression='SnappyCompressor';

I want to set the LeveledCompaction strategy for this table, so I execute the 
following ALTER TABLE :

cqlsh:test1> alter table pns_credentials 
         ... WITH compaction_strategy_class='LeveledCompactionStrategy'
         ... AND compaction_strategy_options:sstable_size_in_mb=10;

In Cassandra logs, I see some informations :
 INFO 10:23:52,532 Enqueuing flush of 
Memtable-schema_columnfamilies@965212657(1391/1738 serialized/live bytes, 20 
ops)
 INFO 10:23:52,533 Writing Memtable-schema_columnfamilies@965212657(1391/1738 
serialized/live bytes, 20 ops)
 INFO 10:23:52,629 Completed flushing 
/var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-hd-94-Data.db
 (1442 bytes) for commitlog position ReplayPosition(segmentId=3556583843054, 
position=1987)


However, when I look at the description of the table, the table is still with 
the SizeTieredCompactionStrategy
cqlsh:test1> describe table pns_credentials ;

CREATE TABLE pns_credentials (
  ise text PRIMARY KEY,
  isnew int,
  ts timestamp,
  mergestatus int,
  infranetaccount text,
  user_level int,
  msisdn bigint,
  mergeusertype int
) WITH
  comment='' AND
  comparator=text AND
  read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  default_validation=text AND
  min_compaction_threshold=4 AND
  max_compaction_threshold=32 AND
  replicate_on_write='true' AND
  compaction_strategy_class='SizeTieredCompactionStrategy' AND
  compression_parameters:sstable_compression='SnappyCompressor';
 
In the schema_columnfamilies table (in system keyspace), the table 
pns_credentials is still using the SizeTieredCompactionStrategy
cqlsh:test1> use system;
cqlsh:system> select * from schema_columnfamilies ;
...
         test1 |   pns_credentials |                   null | KEYS_ONLY |       
                 [] |         | 
org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy |               
           {} |                                                                 
                                                                                
                          org.apache.cassandra.db.marshal.UTF8Type | 
{"sstable_compression":"org.apache.cassandra.io.compress.SnappyCompressor"} |   
       org.apache.cassandra.db.marshal.UTF8Type |           864000 | 1029 |     
  ise |     org.apache.cassandra.db.marshal.UTF8Type |                        0 
|                       32 |                        4 |                0.1 |    
           True |          null | Standard |        null
... 


Same behaviour using cqlsh or command-cli.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to