You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/01/24 00:47:30 UTC

svn commit: r1726456 - in /qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb: ./ replication/

Author: kwall
Date: Sat Jan 23 23:47:30 2016
New Revision: 1726456

URL: http://svn.apache.org/viewvc?rev=1726456&view=rev
Log:
QPID-7016: [Java Broker] BDB - Allow cache mode to be overridden

Modified:
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUtils.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacadeFactory.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentConfiguration.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUtils.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUtils.java?rev=1726456&r1=1726455&r2=1726456&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUtils.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBUtils.java Sat Jan 23 23:47:30 2016
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.regex.Pattern;
 
+import com.sleepycat.je.CacheMode;
 import com.sleepycat.je.CheckpointConfig;
 import com.sleepycat.je.Cursor;
 import com.sleepycat.je.DatabaseConfig;
@@ -154,4 +155,23 @@ public class BDBUtils
 
         return targetMap;
     }
+
+    public static CacheMode getCacheMode(final ConfiguredObject<?> object)
+    {
+        if (object.getContextKeys(false).contains(EnvironmentFacade.CACHE_MODE_PROPERTY_NAME))
+        {
+            try
+            {
+                return object.getContextValue(CacheMode.class, EnvironmentFacade.CACHE_MODE_PROPERTY_NAME);
+            }
+            catch (IllegalArgumentException iae)
+            {
+                LOGGER.warn("Failed to parse {} as {}",
+                            object.getContextValue(String.class, EnvironmentFacade.CACHE_MODE_PROPERTY_NAME),
+                            CacheMode.class,
+                            iae);
+            }
+        }
+        return EnvironmentFacade.CACHE_MODE_DEFAULT;
+    }
 }

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java?rev=1726456&r1=1726455&r2=1726456&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacade.java Sat Jan 23 23:47:30 2016
@@ -25,6 +25,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import com.google.common.util.concurrent.ListenableFuture;
+import com.sleepycat.je.CacheMode;
 import com.sleepycat.je.Database;
 import com.sleepycat.je.DatabaseConfig;
 import com.sleepycat.je.DatabaseEntry;
@@ -52,6 +53,9 @@ public interface EnvironmentFacade
         put(EnvironmentConfig.CLEANER_ADJUST_UTILIZATION, "false");
     }});
 
+    String CACHE_MODE_PROPERTY_NAME = "qpid.bdb.cache_mode";
+    CacheMode CACHE_MODE_DEFAULT = CacheMode.EVICT_LN;
+
     void upgradeIfNecessary(ConfiguredObject<?> parent);
 
     Database openDatabase(String databaseName, DatabaseConfig databaseConfig);

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacadeFactory.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacadeFactory.java?rev=1726456&r1=1726455&r2=1726456&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacadeFactory.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/EnvironmentFacadeFactory.java Sat Jan 23 23:47:30 2016
@@ -20,8 +20,6 @@
  */
 package org.apache.qpid.server.store.berkeleydb;
 
-import java.util.regex.Pattern;
-
 import org.apache.qpid.server.model.ConfiguredObject;
 
 public interface EnvironmentFacadeFactory

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentConfiguration.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentConfiguration.java?rev=1726456&r1=1726455&r2=1726456&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentConfiguration.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentConfiguration.java Sat Jan 23 23:47:30 2016
@@ -21,9 +21,12 @@ package org.apache.qpid.server.store.ber
 
 import java.util.Map;
 
+import com.sleepycat.je.CacheMode;
+
 public interface StandardEnvironmentConfiguration
 {
     String getName();
     String getStorePath();
+    CacheMode getCacheMode();
     Map<String, String> getParameters();
 }

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java?rev=1726456&r1=1726455&r2=1726456&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacade.java Sat Jan 23 23:47:30 2016
@@ -102,9 +102,11 @@ public class StandardEnvironmentFacade i
         EnvironmentConfig envConfig = new EnvironmentConfig();
         envConfig.setAllowCreate(true);
         envConfig.setTransactional(true);
-        envConfig.setCacheMode(CacheMode.EVICT_LN);
+        envConfig.setCacheMode(configuration.getCacheMode());
         envConfig.setLoggingHandler(new Slf4jLoggingHandler("["+configuration.getName()+"]"));
 
+        LOGGER.debug("Cache mode {}", envConfig.getCacheMode());
+
         Map<String, String> params = new HashMap<>(EnvironmentFacade.ENVCONFIG_DEFAULTS);
         params.putAll(configuration.getParameters());
 

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java?rev=1726456&r1=1726455&r2=1726456&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java Sat Jan 23 23:47:30 2016
@@ -22,6 +22,7 @@ package org.apache.qpid.server.store.ber
 
 import java.util.Map;
 
+import com.sleepycat.je.CacheMode;
 import com.sleepycat.je.rep.impl.RepParams;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.store.FileBasedSettings;
@@ -60,6 +61,12 @@ public class StandardEnvironmentFacadeFa
             }
 
             @Override
+            public CacheMode getCacheMode()
+            {
+                return BDBUtils.getCacheMode(parent);
+            }
+
+            @Override
             public Map<String, String> getParameters()
             {
                 return BDBUtils.getEnvironmentConfigurationParameters(parent);

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java?rev=1726456&r1=1726455&r2=1726456&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java Sat Jan 23 23:47:30 2016
@@ -1512,6 +1512,7 @@ public class ReplicatedEnvironmentFacade
             LOGGER.info("Node priority " + priority);
             LOGGER.info("Quorum override " + quorumOverride);
             LOGGER.info("Permitted node list " + _permittedNodes);
+
         }
 
         Map<String, String> replicationEnvironmentParameters = new HashMap<>(ReplicatedEnvironmentFacade.REPCONFIG_DEFAULTS);
@@ -1540,9 +1541,11 @@ public class ReplicatedEnvironmentFacade
         envConfig.setTransactional(true);
         envConfig.setExceptionListener(new ExceptionListener());
         envConfig.setDurability(_defaultDurability);
-        envConfig.setCacheMode(CacheMode.EVICT_LN);
+        envConfig.setCacheMode(_configuration.getCacheMode());
         envConfig.setLoggingHandler(new Slf4jLoggingHandler("[" + _configuration.getName() + "]"));
 
+        LOGGER.info("Cache mode {}", envConfig.getCacheMode());
+
         for (Map.Entry<String, String> configItem : environmentParameters.entrySet())
         {
             if (LOGGER.isInfoEnabled())

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java?rev=1726456&r1=1726455&r2=1726456&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java Sat Jan 23 23:47:30 2016
@@ -22,6 +22,8 @@ package org.apache.qpid.server.store.ber
 
 import java.util.Map;
 
+import com.sleepycat.je.CacheMode;
+
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.store.berkeleydb.BDBUtils;
 import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade;
@@ -50,6 +52,12 @@ public class ReplicatedEnvironmentFacade
             }
 
             @Override
+            public CacheMode getCacheMode()
+            {
+                return BDBUtils.getCacheMode(parent);
+            }
+
+            @Override
             public Map<String, String> getParameters()
             {
                 return BDBUtils.getEnvironmentConfigurationParameters(parent);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org