[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[minion-cvs] hopefully the last cottrell fix



Update of /home/minion/cvsroot/doc
In directory moria.seul.org:/tmp/cvs-serv4215

Modified Files:
	minion-spec.tex 
Log Message:
hopefully the last cottrell fix

Index: minion-spec.tex
===================================================================
RCS file: /home/minion/cvsroot/doc/minion-spec.tex,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -d -r1.64 -r1.65
--- minion-spec.tex	28 Oct 2002 05:19:46 -0000	1.64
+++ minion-spec.tex	28 Oct 2002 14:49:48 -0000	1.65
@@ -828,34 +828,32 @@
 Inputs: Q (a queue of messages)
         N (the number of messages in the queue).
 	MIX_INTERVAL (algorithm parameter; time to wait between
-                      batches of messages.  Should be around XXXXX.)
+                      batches of messages.  Should be around
+                      XXXXX. Must be >= 0.)
         POOL_SIZE (algorithm parameter; minimum size of pool.  Should
-                   be at least XXXXXXXX)
+                   be at least XXXXXXXX.  Must be >= 0.)
         MAX_REPLACEMENT_RATE (algorithm parameter; largest allowable
                    rate for messages to be removed from the
-                   pool. Should be between XXXX and XXXX.)
+                   pool. Should be between XXXX and XXXX.  Must have
+                   0.0 < MAX_REPLACEMENT_RATE <= 1.0)
 
 Outputs: (A set of messages sent to the network).
 
 1. Wait for MIX_INTERVAL seconds.
 
-[XXXX Not quite
-  2. If N > POOL_SIZE, then choose Min(N-POOL_SIZE, N*MAX_REPLACEMENT_RATE)
-     messages from Q.  Transmit the selected messages.
-
-   [Examination of the mixmaster source confirms the following rule.] -NM]
-
-2. If N > POOL_SIZE, then choose Min(N-POOL_SIZE, 
-                                     Max(1, FLOOR(N*MAX_REPLACEMENT_RATE)))
+2. If N > POOL_SIZE, then let 'max_send' = FLOOR(N*MAX_REPLACEMENT_RATE).
+   [If 'max_send' < 0, let max_send = 1.]  Choose Min(N-POOL_SIZE, max_send)
    messages from Q.  Transmit the selected messages.
 
-3. Repeat indefinitely.
+[XXXX Email from Peter Palfrader confirms the bracketed step above,
+ which can only occur when MAX_REPLACEMENT_RATE < 0.  I'm going to
+ suggest that we simply forbid MAX_REPLACEMENT_RATE < 0, and go back
+ to the simplified version:
+     Min(N-POOL_SIZE, FLOOR(N*MAX_REPLACEMENT_RATE)) -NM]
 
-[XXXX Erg.  I'm changing this back again.  If I understand correctly,
-   there's a paper that describes another batching algorithm and calls
-   it "mixmaster".  Andrei, Paul, and Roger copied this description, and
-   I copied them. 
+3. Repeat indefinitely.
 
+[XXXX 
    Paul and/or Andrei describe a variant that checks N>=POOL_SIZE+THRESHOLD, 
    with THRESHOLD>= 1.  Roger claims (verbally) that he isn't sure whether
    this would buy us anything, since (he says) adding 1 to POOL_SIZE would