On Thursday 24 April 2008 01:20, Daniel Cheng wrote:
> On Thu, Apr 24, 2008 at 7:08 AM, Matthew Toseland
> <toad at amphibian.dyndns.org> wrote:
> > 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.
>
> It will not prevent different store in each node.
>
> Only the method is static, not the field.
> It create a *new* EnvirnmentConfig *for each call*, which will then store
> in an instance field in freenet.node.Node.
Ah, okay. Sorry for the noise.
>
> > 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
> > >
> > >
> >
> > _______________________________________________
> > Devl mailing list
> > Devl at freenetproject.org
> > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
> >
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
>
>
-------------- 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/c43e3fa7/attachment.pgp>