Author: toad
Date: 2006-06-07 23:25:17 +0000 (Wed, 07 Jun 2006)
New Revision: 9076

Modified:
   trunk/freenet/.externalToolBuilders/New_Builder.launch
   trunk/freenet/.project
   trunk/freenet/src/freenet/client/async/USKFetcher.java
   trunk/freenet/src/freenet/node/Version.java
Log:
786: Increase the USK fetch window for background fetchers more slowly (max of 
+25% or +1).
We are more likely to find a new edition close to the old one...

Modified: trunk/freenet/.externalToolBuilders/New_Builder.launch
===================================================================
--- trunk/freenet/.externalToolBuilders/New_Builder.launch      2006-06-07 
23:14:08 UTC (rev 9075)
+++ trunk/freenet/.externalToolBuilders/New_Builder.launch      2006-06-07 
23:25:17 UTC (rev 9076)
@@ -3,7 +3,8 @@
 <booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" 
value="false"/>
 <booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
 <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" 
value="true"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" 
value="full,incremental,"/>
+<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" 
value="clean,"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" 
value="full,incremental,clean"/>
 <booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
 <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" 
value="${workspace_loc:/Freenet 0.7/build.xml}"/>
 <booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" 
value="true"/>

Modified: trunk/freenet/.project
===================================================================
--- trunk/freenet/.project      2006-06-07 23:14:08 UTC (rev 9075)
+++ trunk/freenet/.project      2006-06-07 23:25:17 UTC (rev 9076)
@@ -12,7 +12,7 @@
                </buildCommand>
                <buildCommand>
                        
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-                       <triggers>full,incremental,</triggers>
+                       <triggers>clean,full,incremental,</triggers>
                        <arguments>
                                <dictionary>
                                        <key>LaunchConfigHandle</key>

Modified: trunk/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKFetcher.java      2006-06-07 
23:14:08 UTC (rev 9075)
+++ trunk/freenet/src/freenet/client/async/USKFetcher.java      2006-06-07 
23:25:17 UTC (rev 9076)
@@ -172,8 +172,9 @@
        final long maxSleepTime = 60 * 60 * 1000;
        long sleepTime = origSleepTime;

-       // At most, probe 1000 editions ahead!
-       private static final long MAX_MIN_FAILURES = 1000;
+       /** Maximum number of editions to probe ahead. */
+       private final long maxMinFailures;
+       private final static long DEFAULT_MAX_MIN_FAILURES = 100;

        private long valueAtSchedule;

@@ -181,9 +182,15 @@
        private final boolean backgroundPoll;

        private boolean started = false;
+
+       USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx, 
ClientRequester parent, int minFailures, boolean pollForever) {
+               this(origUSK, manager, ctx, parent, minFailures, pollForever, 
DEFAULT_MAX_MIN_FAILURES);
+       }

-       USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx, 
ClientRequester parent, int minFailures, boolean pollForever) {
+       // FIXME use this!
+       USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx, 
ClientRequester parent, int minFailures, boolean pollForever, long 
maxProbeEditions) {
                this.parent = parent;
+               this.maxMinFailures = maxProbeEditions;
                this.origUSK = origUSK;
                this.uskManager = manager;
                this.minFailures = this.origMinFailures = minFailures;
@@ -227,9 +234,10 @@
                                        minFailures = origMinFailures;
                                        sleepTime = origSleepTime;
                                } else {
-                                       long newMinFailures = minFailures * 2;
-                                       if(newMinFailures > MAX_MIN_FAILURES)
-                                               newMinFailures = 
MAX_MIN_FAILURES;
+                                       // Not exponential; it is more likely 
that it is close to the known edition than not.
+                                       long newMinFailures = 
Math.max(((int)((double)minFailures * 1.25)), minFailures+1);
+                                       if(newMinFailures > maxMinFailures)
+                                               newMinFailures = maxMinFailures;
                                        minFailures = newMinFailures;
                                }
                                long newSleepTime = sleepTime * 2;

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-06-07 23:14:08 UTC (rev 
9075)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-07 23:25:17 UTC (rev 
9076)
@@ -18,7 +18,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 785;
+       private static final int buildNumber = 786;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 765;


Reply via email to