Update of /cvsroot/freenet/freenet/src/freenet/node In directory sc8-pr-cvs1:/tmp/cvs-serv4057/src/freenet/node
Modified Files: Main.java Node.java Log Message: 6236: Add support for a maximum number of FDs used for open files by NativeFSDir, with pooling. Remove reference to BlackLRUQueue in OCM - not used any more, was a dirty hack. Throw an NPE slightly earlier in some code tracking bug in. Index: Main.java =================================================================== RCS file: /cvsroot/freenet/freenet/src/freenet/node/Main.java,v retrieving revision 1.265 retrieving revision 1.266 diff -u -r1.265 -r1.266 --- Main.java 11 Oct 2003 20:00:22 -0000 1.265 +++ Main.java 13 Oct 2003 15:42:01 -0000 1.266 @@ -525,7 +525,8 @@ storeSize, Node.storeBlockSize, Node.useDSIndex, - Node.storeMaxTempFraction); + Node.storeMaxTempFraction, + Node.maxNodeFilesOpen); Enumeration e = dir.keys(true); Core.logger.log(Main.class, "Trying to convert datastore", Core.logger.NORMAL); @@ -566,7 +567,8 @@ new File(name).renameTo(storeFiles[0]); dir = newDir = new NativeFSDirectory (storeFiles[0], Node.storeSize, Node.storeBlockSize, - Node.useDSIndex, Node.storeMaxTempFraction); + Node.useDSIndex, Node.storeMaxTempFraction, + Node.maxNodeFilesOpen); Core.logger.log(Main.class, "Conversion done", Core.logger.NORMAL); } @@ -575,7 +577,8 @@ Node.storeSize, Node.storeBlockSize, Node.useDSIndex, - Node.storeMaxTempFraction); + Node.storeMaxTempFraction, + Node.maxNodeFilesOpen); Node.storeFile = new String[] { Node.storeFile[0] }; } Index: Node.java =================================================================== RCS file: /cvsroot/freenet/freenet/src/freenet/node/Node.java,v retrieving revision 1.215 retrieving revision 1.216 diff -u -r1.215 -r1.216 --- Node.java 4 Oct 2003 23:37:26 -0000 1.215 +++ Node.java 13 Oct 2003 15:42:01 -0000 1.216 @@ -41,6 +41,7 @@ public class Node extends Core { public static int maxConnDefault = 512; + public static int maxFileDefault = 256; public static boolean isWin95; public static boolean isWin9X; public static boolean isWinCE; @@ -84,37 +85,43 @@ config.addOption("averageOutputBandwidthLimit", 1, 0, 1205); // disabled sysName = sysName.toLowerCase(); + maxFileDefault = 256; int rtMaxNodesDefault = 50; - if(sysName.startsWith("windows ce")) - isWinCE = true; - else isWinCE = false; - - if(sysName.startsWith("windows 95")) { - isWin95 = true; - isWin9X = true; - maxConnDefault = 20; - rtMaxNodesDefault = 10; - } else if(sysName.startsWith("windows 98") - || (sysName.startsWith("windows") && - (sysName.indexOf("millennium") != -1)) || - (sysName.startsWith("windows me"))) { - // Detected Windows 9X - maxConnDefault = 60; - rtMaxNodesDefault = 30; - isWin9X = true; - } else { - isWin9X = false; + if(sysName.startsWith("windows")) { + maxFileDefault = 1024; // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_crt__setmaxstdio.asp + if(sysName.startsWith("windows ce")) + isWinCE = true; + else if(sysName.startsWith("windows 95")) { + isWin95 = true; + isWin9X = true; + maxConnDefault = 20; + rtMaxNodesDefault = 10; + } else if(sysName.startsWith("windows 98") + || (sysName.startsWith("windows") && + (sysName.indexOf("millennium") != -1)) || + (sysName.startsWith("windows me"))) { + // Detected Windows 9X + maxConnDefault = 60; + rtMaxNodesDefault = 30; + isWin9X = true; + } else { + isWin9X = false; + } } + if(sysName.startsWith("windows")) + if(sysName.startsWith("mac os x")) { maxConnDefault = 128; + maxFileDefault = 64; rtMaxNodesDefault = 40; isOSX = true; } else isOSX = false; config.addOption("rtMaxNodes", 1, rtMaxNodesDefault, 1301); - config.addOption("maxNodeConnections", 1, maxConnDefault, 1225); + config.addOption("maxNodeConnections", 1, maxConnDefault, 1224); + config.addOption("maxNodeFilesOpen", 1, maxFileDefault, 1225); // I'm deprecating these in favor of config.addOption("maxConnectionsPerMinute", 1, 60, 1226); config.addOption("maxConnectionsMinute", 1, 60000, 1227); @@ -651,7 +658,7 @@ // maxNodeConnections config.setExpert ("maxNodeConnections", true); - config.argDesc ("maxNodeConnections", "<int>"); + config.argDesc ("maxNodeConnections", "<positive integer>"); config.shortDesc ("maxNodeConnections", "Max. no. of connections to other "+ "nodes. Deprecated unless maximumThreads=0."); config.longDesc ("maxNodeConnections", @@ -659,6 +666,11 @@ "allow at the same time. Forced to 0.4*maximumThreads unless"+ " maximumThreads = 0."); + // maxNodeFilesOpen + config.setExpert("maxNodeFilesOpen", true); + config.argDesc ("maxNodeFilesOpen", "<positive integer>"); + config.longDesc ("maxNodeFilesOpen", "Maximum number of file descriptors used by the node for files. Not including connections."); + // ipAddress config.setExpert ("ipAddress", true); config.argDesc ("ipAddress", "xxx.xxx.xxx.xxx"); @@ -1803,6 +1815,7 @@ static public int listenPort; static public String storeType; static public int maxNodeConnections; + static public int maxNodeFilesOpen; static public int bandwidthLimit, inputBandwidthLimit, outputBandwidthLimit; static public int averageBandwidthLimit, averageInputBandwidthLimit, averageOutputBandwidthLimit; static public double lowLevelBWLimitMultiplier; // the param value * the fudge factor @@ -2007,6 +2020,7 @@ //maxFileSize = cacheSize / params.getInt("storeCacheCount"); maxNodeConnections = params.getInt("maxNodeConnections"); + maxNodeFilesOpen = params.getInt("maxNodeFilesOpen"); rtMaxRefs = params.getInt("rtMaxRefs"); rtMaxNodes = params.getInt("rtMaxNodes"); _______________________________________________ cvs mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs