package org.hypergraphdb.storage.bje; import com.sleepycat.je.DatabaseConfig; import com.sleepycat.je.Durability; import com.sleepycat.je.EnvironmentConfig; public class BJEConfig { public static final long DEFAULT_STORE_CACHE = 5*1024*1024; // 5MB public static final int DEFAULT_NUMBER_OF_STORAGE_CACHES = 1; private EnvironmentConfig envConfig; private DatabaseConfig dbConfig; private void resetDefaults(boolean readOnly) { envConfig.setReadOnly(readOnly); dbConfig.setReadOnly(readOnly); envConfig.setAllowCreate(!readOnly); dbConfig.setAllowCreate(!readOnly); envConfig.setCacheSize(DEFAULT_STORE_CACHE); //envConfig.setCachePercent(30); envConfig.setConfigParam(EnvironmentConfig.LOG_FILE_MAX, Long.toString(1000000l)); envConfig.setConfigParam( EnvironmentConfig.CLEANER_LOOK_AHEAD_CACHE_SIZE, Long.toString(1024 * 64)); envConfig.setConfigParam(EnvironmentConfig.CLEANER_READ_SIZE, Long.toString(1024 * 64)); } public BJEConfig() { envConfig = new EnvironmentConfig(); dbConfig = new DatabaseConfig(); resetDefaults(false); } public EnvironmentConfig getEnvironmentConfig() { return envConfig; } public DatabaseConfig getDatabaseConfig() { return dbConfig; } public void configureTransactional() { envConfig.setTransactional(true); dbConfig.setTransactional(true); // envConfig.setLockDetectMode(LockDetectMode.RANDOM); Durability defaultDurability = new Durability( Durability.SyncPolicy.WRITE_NO_SYNC, Durability.SyncPolicy.NO_SYNC, // unused by non-HA applications. Durability.ReplicaAckPolicy.NONE); // unused by non-HA // applications. envConfig.setDurability(defaultDurability); } }