From 9e12e4abe57ae239e60a38fb9b66f5ed1b111075 Mon Sep 17 00:00:00 2001 From: gojomo Date: Tue, 13 Apr 2010 02:15:53 +0000 Subject: [PATCH] test/deprecation cleanup * CachedBdbMap.java @deprecated * BdbModule.java note (unused) 'CBM' option is deprecated * ObjectIdentityBdbCache.java tighten logging to FINE * ObjectIdentityBdbCacheTest.java fix test that was only trying to log, rather than fail, problems --- .../main/java/org/archive/bdb/BdbModule.java | 22 ++++++------ .../java/org/archive/util/CachedBdbMap.java | 2 +- .../archive/util/ObjectIdentityBdbCache.java | 10 +++--- .../util/ObjectIdentityBdbCacheTest.java | 35 ++++++------------- 4 files changed, 26 insertions(+), 43 deletions(-) diff --git a/commons/src/main/java/org/archive/bdb/BdbModule.java b/commons/src/main/java/org/archive/bdb/BdbModule.java index d9b69bd5..156ade88 100644 --- a/commons/src/main/java/org/archive/bdb/BdbModule.java +++ b/commons/src/main/java/org/archive/bdb/BdbModule.java @@ -78,7 +78,6 @@ public class BdbModule implements Lifecycle, Checkpointable, Closeable { private static final long serialVersionUID = 1L; public transient Database database; public String name; - public String primaryName; public BdbConfig config; } @@ -222,7 +221,7 @@ public class BdbModule implements Lifecycle, Checkpointable, Closeable { doRecover(); } - setup(getDir().getFile(), getCachePercent(), !isRecovery, getUseSharedCache()); + setup(getDir().getFile(), !isRecovery); } catch (DatabaseException e) { throw new IllegalStateException(e); } catch (IOException e) { @@ -244,37 +243,35 @@ public class BdbModule implements Lifecycle, Checkpointable, Closeable { close(); } - protected void setup(File f, int cachePercent, boolean create, boolean sharedCache) + protected void setup(File f, boolean create) throws DatabaseException { EnvironmentConfig config = new EnvironmentConfig(); config.setAllowCreate(create); config.setLockTimeout(75, TimeUnit.MINUTES); // set to max - if(cachePercent>0) { - config.setCachePercent(cachePercent); + if(getCachePercent()>0) { + config.setCachePercent(getCachePercent()); } - config.setSharedCache(sharedCache); + config.setSharedCache(getUseSharedCache()); // we take the advice literally from... // http://www.oracle.com/technology/products/berkeley-db/faq/je_faq.html#33 - long nLockTables = expectedConcurrency-1; + long nLockTables = getExpectedConcurrency()-1; while(!BigInteger.valueOf(nLockTables).isProbablePrime(Integer.MAX_VALUE)) { nLockTables--; } config.setConfigParam("je.lock.nLockTables", Long.toString(nLockTables)); // triple this value to 6K because stats show many faults - config.setConfigParam("je.log.faultReadSize", "6144"); - f.mkdirs(); - + config.setConfigParam("je.log.faultReadSize", "6144"); + // to support checkpoints, prevent BDB's cleaner from deleting log files config.setConfigParam("je.cleaner.expunge", "false"); + f.mkdirs(); this.bdbEnvironment = new EnhancedEnvironment(f, config); - this.classCatalog = this.bdbEnvironment.getClassCatalog(); } - public void closeDatabase(Database db) { try { closeDatabase(db.getDatabaseName()); @@ -384,6 +381,7 @@ public class BdbModule implements Lifecycle, Checkpointable, Closeable { * @param value * @return * @throws DatabaseException + * @deprecated use ObjectIdentityBdbCache instead */ public CachedBdbMap getCBMMap(String dbName, boolean recycle, Class key, Class value) diff --git a/commons/src/main/java/org/archive/util/CachedBdbMap.java b/commons/src/main/java/org/archive/util/CachedBdbMap.java index 176128c9..85349381 100644 --- a/commons/src/main/java/org/archive/util/CachedBdbMap.java +++ b/commons/src/main/java/org/archive/util/CachedBdbMap.java @@ -88,7 +88,7 @@ import com.sleepycat.je.LockConflictException; * @author stack * @author gojomo * @author paul baclace (conversion to ConcurrentMap) - * + * @deprecated */ public class CachedBdbMap extends AbstractMap implements ConcurrentMap, ObjectIdentityCache, Serializable, Closeable { diff --git a/commons/src/main/java/org/archive/util/ObjectIdentityBdbCache.java b/commons/src/main/java/org/archive/util/ObjectIdentityBdbCache.java index 4909b57f..e944ed05 100644 --- a/commons/src/main/java/org/archive/util/ObjectIdentityBdbCache.java +++ b/commons/src/main/java/org/archive/util/ObjectIdentityBdbCache.java @@ -304,7 +304,7 @@ implements ObjectIdentityCache, Closeable, Serializable { } /** - * Info to log, if at FINE level + * Summary to log, if at FINE level */ private void logCacheSummary() { if (logger.isLoggable((Level.FINE))) { @@ -371,10 +371,10 @@ implements ObjectIdentityCache, Closeable, Serializable { // Sync. memory and disk. useStatsSyncUsed.incrementAndGet(); long startTime = 0; - if (logger.isLoggable(Level.INFO)) { + if (logger.isLoggable(Level.FINE)) { dbName = getDatabaseName(); startTime = System.currentTimeMillis(); - logger.info(dbName + " start sizes: disk " + this.diskMap.size() + + logger.fine(dbName + " start sizes: disk " + this.diskMap.size() + ", mem " + this.memMap.size()); } @@ -398,8 +398,8 @@ implements ObjectIdentityCache, Closeable, Serializable { throw new RuntimeException(e); } - if (logger.isLoggable(Level.INFO)) { - logger.info(dbName + " sync took " + + if (logger.isLoggable(Level.FINE)) { + logger.fine(dbName + " sync took " + (System.currentTimeMillis() - startTime) + "ms. " + "Finish sizes: disk " + this.diskMap.size() + ", mem " + this.memMap.size()); diff --git a/commons/src/test/java/org/archive/util/ObjectIdentityBdbCacheTest.java b/commons/src/test/java/org/archive/util/ObjectIdentityBdbCacheTest.java index 9a2c4bd7..ea19e77b 100644 --- a/commons/src/test/java/org/archive/util/ObjectIdentityBdbCacheTest.java +++ b/commons/src/test/java/org/archive/util/ObjectIdentityBdbCacheTest.java @@ -18,17 +18,13 @@ */ package org.archive.util; -import java.io.File; -import java.util.HashMap; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.logging.Handler; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.commons.lang.math.RandomUtils; -import org.archive.util.bdbje.EnhancedEnvironment; - -import org.apache.commons.io.FileUtils; +import java.io.File; +import java.util.HashMap; +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang.math.RandomUtils; +import org.archive.util.bdbje.EnhancedEnvironment; /** * @contributor stack @@ -39,7 +35,6 @@ public class ObjectIdentityBdbCacheTest extends TmpDirTestCase { EnhancedEnvironment env; private ObjectIdentityBdbCache> cache; - @SuppressWarnings("unchecked") protected void setUp() throws Exception { super.setUp(); File envDir = new File(getTmpDir(),"ObjectIdentityBdbCacheTest"); @@ -123,14 +118,6 @@ public class ObjectIdentityBdbCacheTest extends TmpDirTestCase { } public void testBackingDbGetsUpdated() { - // Enable all logging. Up the level on the handlers and then - // on the big map itself. - Handler [] handlers = Logger.getLogger("").getHandlers(); - for (int index = 0; index < handlers.length; index++) { - handlers[index].setLevel(Level.FINEST); - } - Logger.getLogger(ObjectIdentityBdbCache.class.getName()). - setLevel(Level.FINEST); // Set up values. final String value = "value"; final String key = "key"; @@ -147,11 +134,9 @@ public class ObjectIdentityBdbCacheTest extends TmpDirTestCase { this.cache.sync(); for (int i = 0; i < upperbound; i++) { HashMap m = this.cache.get(key + Integer.toString(i)); - String v = m.get(key); - if (v == null || !v.equals(value)) { - Logger.getLogger(CachedBdbMap.class.getName()). - warning("Wrong value " + i); - } + String v = m.get(key); + assertNotNull("value should not be null",v); + assertEquals("value incorrect", value, v); } }