7 Replies Latest reply on Feb 5, 2013 3:50 PM by jia

    Trouble starting Infinispan using a Cassandra cache store.

    gmels

      Hi,

       

      I am currently evaluating using Infinispan on top of a Cassandra cache store. Whenever I start an Infinispan cluster node, and Cassandra contains data from a previous run,

      the application immediatly allocates all available memory (1GB) and after a few minutes I get OutOfMemory exceptions in org.infinispan.loaders.cassandra.CassandraCacheStore.purgeInternal.

       

      If I purge Cassandra manually (TRUNCATE InfinispanEntries; TRUNCATE InfinispanExpiration;) and restart the application, everything works again.

       

      Note that there were only around 10000 entries stored in Cassandra (around 150 MB spread over 2 nodes).

       

      Have I found a bug or am I missing something? I am using Infinispan 5.1.4 and Cassandra 1.0.10.

       

      Thanks.

       

      My Infinispan loaders configuration:

       

      <loaders passivation="false" preload="false" shared="true">
           <loader class="org.infinispan.loaders.cassandra.CassandraCacheStore" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
                <properties>
                     <!--  property name="autoCreateKeyspace" value="true"/ -->
                     <property name="host" value="localhost" />
                     <property name="keySpace" value="Infinispan" />
                     <property name="entryColumnFamily" value="InfinispanEntries" />
                     <property name="expirationColumnFamily" value="InfinispanExpiration" />
                     <property name="sharedKeyspace" value="false" />
                     <property name="readConsistencyLevel" value="ONE" />
                     <property name="writeConsistencyLevel" value="ONE" />
                     <property name="configurationPropertiesFile" value="cassandrapool.properties" />
                     <property name="keyMapper" value="org.infinispan.loaders.keymappers.DefaultTwoWayKey2StringMapper" />
                </properties>
           </loader>
      </loaders>
      

       

       

      The stack trace:

      Caused by: java.lang.OutOfMemoryError: Java heap space
              at java.nio.ByteBuffer.wrap(ByteBuffer.java:367)
              at java.nio.ByteBuffer.wrap(ByteBuffer.java:390)
              at org.apache.thrift.TBaseHelper.rightSize(TBaseHelper.java:279)
              at org.apache.cassandra.thrift.Column.getName(Column.java:195)
              at org.infinispan.loaders.cassandra.CassandraCacheStore.purgeInternal(CassandraCacheStore.java:539)
              at org.infinispan.loaders.cassandra.CassandraCacheStore.start(CassandraCacheStore.java:153)
              at org.infinispan.loaders.CacheLoaderManagerImpl.start(CacheLoaderManagerImpl.java:136)
              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.infinispan.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:236)
              at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:885)
              at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:639)
              at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:628)
              at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:531)
              at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:174)
              at org.infinispan.CacheImpl.start(CacheImpl.java:521)
              at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:656)
              at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:549)
              at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:521)