I strongly disagree with this patch. Please revert it. It prevents us from
using multiple nodes with different stores in one VM. Static is to be used
*sparingly* in Freenet.
On Wednesday 23 April 2008 14:38, j16sdiz at freenetproject.org wrote:
> Author: j16sdiz
> Date: 2008-04-23 13:38:44 +0000 (Wed, 23 Apr 2008)
> New Revision: 19526
>
> Modified:
> trunk/freenet/src/freenet/node/Node.java
> trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
> Log:
> move BDB EnvirnmentConfig to BDBFS
>
>
> Modified: trunk/freenet/src/freenet/node/Node.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/Node.java 2008-04-23 13:18:03 UTC (rev
19525)
> +++ trunk/freenet/src/freenet/node/Node.java 2008-04-23 13:38:44 UTC (rev
19526)
> @@ -1326,32 +1326,8 @@
> if(storeType.equals("bdb-index")) {
> // Setup datastores
>
> - // First, global settings
> + EnvironmentConfig envConfig =
> BerkeleyDBFreenetStore.getBDBConfig();
>
> - // Percentage of the database that must contain usefull data
> - // decrease to increase performance, increase to save disk space
> - // Let it stay at the default of 50% for best performance.
> - // We only use it for indexes, so it won't get huge.
> - //System.setProperty("je.cleaner.minUtilization","90");
> - // Delete empty log files
> - System.setProperty("je.cleaner.expunge","true");
> - EnvironmentConfig envConfig = new EnvironmentConfig();
> - envConfig.setAllowCreate(true);
> - envConfig.setTransactional(true);
> - envConfig.setTxnWriteNoSync(true);
> - envConfig.setLockTimeout(600*1000*1000); // should be long
> enough even
for severely overloaded nodes!
> - // Note that the above is in *MICRO*seconds.
> - envConfig.setConfigParam("je.log.faultReadSize", "6144");
> - //
http://www.oracle.com/technology/products/berkeley-db/faq/je_faq.html#35
> - envConfig.setConfigParam("je.evictor.lruOnly", "false"); //Is
> not a
mutable config option and must be set before opening of environment.
> - envConfig.setConfigParam("je.evictor.nodesPerScan", "50");
> //Is not a
mutable config option and must be set before opening of environment.
> - // Recommended is 100, but smaller values reduce latency cost.
> -
> - // Tune latency
> - envConfig.setConfigParam("je.env.backgroundReadLimit", "65536");
> - envConfig.setConfigParam("je.env.backgroundWriteLimit",
> "65536");
> - envConfig.setConfigParam("je.env.backgroundSleepInterval",
> "10000" /*
microseconds */); // 10ms
> -
> File dbDir = new File(storeDir,
> "database-"+getDarknetPortNumber());
> dbDir.mkdirs();
>
> @@ -1638,7 +1614,7 @@
> Logger.normal(this, "Node constructor completed");
> System.out.println("Node constructor completed");
> }
> -
> +
> public void start(boolean noSwaps) throws NodeInitException {
>
> dispatcher.start(nodeStats); // must be before usm
>
> Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
> ===================================================================
> --- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
> 2008-04-23
13:18:03 UTC (rev 19525)
> +++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
> 2008-04-23
13:38:44 UTC (rev 19526)
> @@ -21,6 +21,7 @@
> import com.sleepycat.je.DatabaseException;
> import com.sleepycat.je.DatabaseNotFoundException;
> import com.sleepycat.je.Environment;
> +import com.sleepycat.je.EnvironmentConfig;
> import com.sleepycat.je.LockMode;
> import com.sleepycat.je.OperationStatus;
> import com.sleepycat.je.RunRecoveryException;
> @@ -2151,4 +2152,36 @@
> if (lruRAF != null)
> lruRAF.getFD().sync();
> }
> +
> + /**
> + * @return
> + */
> + public static EnvironmentConfig getBDBConfig() {
> + // First, global settings
> +
> + // Percentage of the database that must contain usefull data
> + // decrease to increase performance, increase to save disk space
> + // Let it stay at the default of 50% for best performance.
> + // We only use it for indexes, so it won't get huge.
> + //System.setProperty("je.cleaner.minUtilization","90");
> + // Delete empty log files
> + System.setProperty("je.cleaner.expunge","true");
> + EnvironmentConfig envConfig = new EnvironmentConfig();
> + envConfig.setAllowCreate(true);
> + envConfig.setTransactional(true);
> + envConfig.setTxnWriteNoSync(true);
> + envConfig.setLockTimeout(600*1000*1000); // should be long enough even
for severely overloaded nodes!
> + // Note that the above is in *MICRO*seconds.
> + envConfig.setConfigParam("je.log.faultReadSize", "6144");
> + //
http://www.oracle.com/technology/products/berkeley-db/faq/je_faq.html#35
> + envConfig.setConfigParam("je.evictor.lruOnly", "false"); //Is not a
mutable config option and must be set before opening of environment.
> + envConfig.setConfigParam("je.evictor.nodesPerScan", "50"); //Is not a
mutable config option and must be set before opening of environment.
> + // Recommended is 100, but smaller values reduce latency cost.
> +
> + // Tune latency
> + envConfig.setConfigParam("je.env.backgroundReadLimit", "65536");
> + envConfig.setConfigParam("je.env.backgroundWriteLimit", "65536");
> + envConfig.setConfigParam("je.env.backgroundSleepInterval", "10000" /*
microseconds */); // 10ms
> + return envConfig;
> + }
> }
>
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20080424/4fa647cb/attachment.pgp>