Hello,
I am using Cassandra 1.1.1 and CQL3.
I have a cluster with 1 node (test environment)
Could you tell how to set the compaction strategy to Leveled Strategy for
an existing table ?
I have a table pns_credentials
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
...
I stopped/started the Cassandra node, but the table is still with
SizeTieredCompactionStrategy
I tried using cassandra-cli, but the alter is still unsuccessfull.
Is there anything I am missing ?
Thanks.
Jean-Armel