I'm using Cassandra 1.0.3 on a 2 nodes cluster. My schema (with 
replication_factor=2) contains both compressed (with 
sstable_compression=DeflateCompressor) and uncompressed column families.


When bootstrapping a third node, the uncompressed families are created on the 
new node as expected, but the compressed families are not. Only the 
uncompressed families appear in a "show schema", and the new node data size is 
small, which is consistent with the big compressed data not being there.

I'm seeing frequent exceptions in the log :

 INFO [main] 2012-01-13 14:55:00,493 StorageService.java (line 616) JOINING: 
sleeping 30000 ms for pending range setup
ERROR [MutationStage:1] 2012-01-13 14:55:01,511 RowMutationVerbHandler.java 
(line 65) Error in row mutation
org.apache.cassandra.db.UnserializableColumnFamilyException: Couldn't find 
cfId=1008
    at 
org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:129)
    at 
org.apache.cassandra.db.RowMutation$RowMutationSerializer.deserialize(RowMutation.java:401)
    at 
org.apache.cassandra.db.RowMutation$RowMutationSerializer.deserialize(RowMutation.java:409)
    at org.apache.cassandra.db.RowMutation.fromBytes(RowMutation.java:357)
    at 
org.apache.cassandra.db.RowMutationVerbHandler.doVerb(RowMutationVerbHandler.java:46)
    at 
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:59)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)



After a few minutes, The column family names are shown instead of their ids 
("UrlText" is one of the compressed families) :


ERROR [ReadStage:46] 2012-01-13 14:59:33,924 AbstractCassandraDaemon.java (line 
133) Fatal exception in thread Thread[ReadStage:46,5,main]
java.lang.IllegalArgumentException: Unknown ColumnFamily UrlText in keyspace 
ptprod
    at org.apache.cassandra.config.Schema.getComparator(Schema.java:226)
    at 
org.apache.cassandra.db.ColumnFamily.getComparatorFor(ColumnFamily.java:300)
    at org.apache.cassandra.db.ReadCommand.getComparator(ReadCommand.java:92)
    at 
org.apache.cassandra.db.SliceByNamesReadCommand.<init>(SliceByNamesReadCommand.java:44)
    at 
org.apache.cassandra.db.SliceByNamesReadCommandSerializer.deserialize(SliceByNamesReadCommand.java:106)
    at 
org.apache.cassandra.db.SliceByNamesReadCommandSerializer.deserialize(SliceByNamesReadCommand.java:74)
    at 
org.apache.cassandra.db.ReadCommandSerializer.deserialize(ReadCommand.java:132)
    at org.apache.cassandra.db.ReadVerbHandler.doVerb(ReadVerbHandler.java:51)
    at 
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:59)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)



How can I get the compressed families on the new node ?

Thanks,
Alexis Lauthier

Reply via email to