Preload problem
john.prince Aug 5, 2009 7:56 AMHi, I'm trying to get persistence working, without much success. There seems to be a problem with the serialization of large objects. Here is a test to show the problem:
import java.util.Arrays;
import org.infinispan.Cache;
import org.infinispan.config.CacheLoaderManagerConfig;
import org.infinispan.config.Configuration;
import org.infinispan.loaders.file.FileCacheStoreConfig;
import org.infinispan.manager.CacheManager;
import org.infinispan.manager.DefaultCacheManager;
/**
 * @author John Prince
 * Date: Aug 5, 2009
 * Time: 1:15:48 PM
 */
public class InfinispanTest
{
 private static void runTest(int count)
 {
 try
 {
 Configuration cacheConfig = new Configuration();
 CacheLoaderManagerConfig cacheLoaders = new CacheLoaderManagerConfig();
 cacheLoaders.setPreload(true);
 FileCacheStoreConfig fileStoreConfig = new FileCacheStoreConfig();
 fileStoreConfig.setLocation("/work/temp/cache_store_" + count);
 cacheLoaders.addCacheLoaderConfig(fileStoreConfig);
 cacheConfig.setCacheLoaderManagerConfig(cacheLoaders);
 CacheManager manager = new DefaultCacheManager(true);
 manager.defineCache("test", cacheConfig);
 Cache<String, byte[]> cache = manager.getCache("test");
 cache.start();
 byte[] bytes = new byte[count];
 Arrays.fill(bytes, (byte) 1);
 cache.put("test_object", bytes);
 int cacheSize = cache.size();
 manager.stop();
 assert 1 == cacheSize;
 }
 catch (Throwable e)
 {
 System.out.println("FAILURE::: Test with " + count + " failed. ");
 e.printStackTrace();
 }
 }
 public static void main(String[] args)
 {
 runTest(60000);
 runTest(60000);
 runTest(70000);
 runTest(70000);
 }
}
With a 60000 byte array, the preload works. With 70000 it doesn't. Environment is Windows Vista, JDK 1.6.0_u14, yesterday's SVN version (before you just broke it today :>))
Is this a known problem? JBoss Serialization seems to have problems with large objects too - I assume that the origin of the problem is there, but I took a look at the code and then looked away again :>)
I realize this is alpha software, and I am otherwise very excited about the possibilities, but this is a bit of a killer for me. Any hints on what I might be doing wrong, or what the problem might be, would be greatly appreciated.
FWIW, you don't seem to have any tests for this - you have a couple of preload tests, but they are on very small objects.
Best wishes
John
 
     
    