[ 
https://issues.apache.org/jira/browse/CASSANDRA-4400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13527998#comment-13527998
 ] 

Sylvain Lebresne commented on CASSANDRA-4400:
---------------------------------------------

bq. Is there a reason Cassandra's not using the pure Java version of Snappy?

An very quick look at those benchmarks seems to suggest that the JNI impl is 
still faster on read, which is what we mainly care about. That being said, it 
wouldn't be crazy to fallback to the pure Java version if the JNI one can't be 
loaded, provided this is not too complicated to do. At least patches are 
welcome :)
                
> Correctly catch exception when Snappy cannot be loaded
> ------------------------------------------------------
>
>                 Key: CASSANDRA-4400
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4400
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.1.1
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.1.3
>
>         Attachments: 4400.txt
>
>
> From the mailing list, on C* 1.1.1:
> {noformat}
> INFO 14:22:07,600 Global memtable threshold is enabled at 35MB
> java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:616)
>         at 
> org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:317)
>         at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:219)
>         at org.xerial.snappy.Snappy.<clinit>(Snappy.java:44)
>         at 
> org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45)
>         at 
> org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:55)
>         at 
> org.apache.cassandra.io.compress.SnappyCompressor.<clinit>(SnappyCompressor.java:37)
>         at org.apache.cassandra.config.CFMetaData.<clinit>(CFMetaData.java:76)
>         at 
> org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:79)
>         at 
> org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:439)
>         at 
> org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:118)
>         at 
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:126)
>         at 
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:353)
>         at 
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106)
> Caused by: java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path
>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
>         at java.lang.Runtime.loadLibrary0(Runtime.java:840)
>         at java.lang.System.loadLibrary(System.java:1047)
>         at 
> org.xerial.snappy.SnappyNativeLoader.loadLibrary(SnappyNativeLoader.java:52)
>         ... 17 more
> ERROR 14:22:09,934 Exception encountered during startup
> 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 
> org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45)
>         at 
> org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:55)
>         at 
> org.apache.cassandra.io.compress.SnappyCompressor.<clinit>(SnappyCompressor.java:37)
>         at org.apache.cassandra.config.CFMetaData.<clinit>(CFMetaData.java:76)
>         at 
> org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:79)
>         at 
> org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:439)
>         at 
> org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:118)
>         at 
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:126)
>         at 
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:353)
>         at 
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106)
> 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 
> org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45)
>         at 
> org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:55)
>         at 
> org.apache.cassandra.io.compress.SnappyCompressor.<clinit>(SnappyCompressor.java:37)
>         at org.apache.cassandra.config.CFMetaData.<clinit>(CFMetaData.java:76)
>         at 
> org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:79)
>         at 
> org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:439)
>         at 
> org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:118)
>         at 
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:126)
>         at 
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:353)
>         at 
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106)
> Exception encountered during startup: [FAILED_TO_LOAD_NATIVE_LIBRARY] null
> {noformat}

--
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