Is there a way to change the sstable_compression for system tables? I am trying to deploy Cassandra 1.2.2 on a platform with IBM Java and 32 bit arch where the snappy-java native library fails to load. The error I get looks like,
ERROR [SSTableBatchOpen:1] 2013-05-02 14:42:42,485 CassandraDaemon.java (line 132) Exception in thread Thread[SSTableBatchOpen:1,5,main] java.lang.RuntimeException: Cannot create CompressionParameters for stored parameters at org.apache.cassandra.io.compress.CompressionMetadata.<init>(CompressionMetadata.java:99) at org.apache.cassandra.io.compress.CompressionMetadata.create(CompressionMetadata.java:63) at org.apache.cassandra.io.util.CompressedSegmentedFile$Builder.complete(CompressedSegmentedFile.java:51) at org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:404) at org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:198) at org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:149) at org.apache.cassandra.io.sstable.SSTableReader$1.run(SSTableReader.java:238) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:482) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:345) at java.util.concurrent.FutureTask.run(FutureTask.java:177) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626) at java.lang.Thread.run(Thread.java:780) Caused by: org.apache.cassandra.exceptions.ConfigurationException: SnappyCompressor.create() threw an error: java.lang.NoClassDefFoundError org.xerial.snappy.Snappy (initialization failure) at org.apache.cassandra.io.compress.CompressionParameters.createCompressor(CompressionParameters.java:179) at org.apache.cassandra.io.compress.CompressionParameters.<init>(CompressionParameters.java:71) at org.apache.cassandra.io.compress.CompressionMetadata.<init>(CompressionMetadata.java:95) ... 12 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) at java.lang.reflect.Method.invoke(Method.java:613) at org.apache.cassandra.io.compress.CompressionParameters.createCompressor(CompressionParameters.java:156) ... 14 more Caused by: java.lang.NoClassDefFoundError: org.xerial.snappy.Snappy (initialization failure) at java.lang.J9VMInternals.initialize(J9VMInternals.java:176) at org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45) ... 19 more Caused by: org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] null at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:229) at org.xerial.snappy.Snappy.<clinit>(Snappy.java:44) at java.lang.J9VMInternals.initializeImpl(Native Method) at java.lang.J9VMInternals.initialize(J9VMInternals.java:236) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:150) at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:366) at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:409) I am not able to change sstable_compression for system tables from either cassandra-cli or from cqlsh. I should point out that the DataStax docs do state that system tables cannot be altered. I was wondering though if there might be another way to do so. Simply not using IBM Java is not an option for me. There is already an issue[1] open with the snappy-java project that I think will address this issue; however, that would involve packaging a new version of snappy-java with Cassandra (when the fix is available). I would like to better understand the impact of switching to a patched and/or upgraded version of snappy-java before making that change. [1] https://github.com/xerial/snappy-java/issues/34 Thanks - John