On Thu, Jun 27, 2002 at 01:07:12AM -0400, Gianni Johansson wrote:
> On Wednesday 26 June 2002 23:30, Pascal wrote:
> 
> The reason these limits are there is to keep badly behaved nodes from DOSing 
> the rest of freenet.  There were situations where nodes would try to send 
> hundreds of times more requests than they could answer.
> 
> It isn't a good idea for nodes to try to send more outgoing requests than 
> than they handle incoming ones. At least not on average across the entire 
> network.  Think of conservation arguments in physics...
How does 60 requests per minute correspond to 120 threads (this makes 60
concurrent requests?) - won't the thread limit prevent th node sending
more outgoing requests than it can handle incoming ones, if most
requests are being relayed rather than originated?
> 
> -- gj
> 
> 
> > If the diff below is complete, your changes have done nothing other than
> > remove the notification to you when incoming connections are being
> > rejected.  The actual rejecting of connections is not handled by
> > rejectingRequests().  If you'd like to see what actually happens when
> > your node ignores the overload code you'll need to recompile from cvs
> > (or wait till the 6-27 snapshot comes out), change maximumThreads in
> > your config file to 0, and set maxConnectionsPerMinute to a high number
> > (I use 1000.)
> >
> > -Pascal
> >
> > Tril wrote:
> > > I setup a node on a fast connection.  Pretty soon it started
> > > QueryRejecting all incoming requests half the time, even though the
> > > machine was still usable for other things.  I wanted to see what sort of
> > > resources Freenet would use if it tried to handle all of the requests.
> > > So I went and found the place in the code where it was deciding when to
> > > QueryReject all incoming connections, and read it.  It didn't seem to be
> > > doing anything that I wanted it to do, so I commented it out entirely.
> > >
> > > Patch below.  This change does not seem to increase the CPU usage of
> > > Freenet noticeably, in fact it seems to me to have decreased it a small
> > > bit, but it could just be me.  My node runs better with this change.  It
> > > does not say "QueryRejecting all incoming connections" (except if the
> > > number of threads in use is equal to maximumThreads, so that must be
> > > done somewhere else that I didn't look into because that behavior is
> > > fine with me).  More requests can therefore be handled.
> > >
> > > The node has been running for some time since this change with no
> > > apparent adverse effects.
> > >
> > > Can someone explain the purpose of the two checks I removed?
> > >
> > > 1. keeping a frequency count of *outgoing* requests and rejecting
> > > incoming ones if it is too high?  Why is the default
> > > (maxConnectionsPerMinute) 60 per minute?   Is performing this frequency
> > > count expensive, explaining why commenting this out reduced load?
> > >
> > > 2. looking for activeJobs 2/3 (now 3/5) of maximumThreads?
> > >
> > > It seems to me that these checks only serve to make nodes appear
> > > overloaded when they actually aren't.  Is it possible Freenet is not
> > > overloaded at all?
> > >
> > > My machine is about 500MHz.  I'd be curious what happens with this patch
> > > on a slower machine.
> > >
> > > Index: Node.java
> > > ===================================================================
> > > RCS file: /cvsroot/freenet/freenet/src/freenet/node/Node.java,v
> > > retrieving revision 1.25
> > > diff -u -r1.25 Node.java
> > > --- Node.java   26 Jun 2002 01:42:13 -0000      1.25
> > > +++ Node.java   26 Jun 2002 23:34:22 -0000
> > > @@ -950,11 +950,7 @@
> > >       * @return true if the Node is QueryRejecting inbound requests,
> > > false otherwise.
> > >       **/
> > >      public boolean rejectingRequests() {
> > > -        if (outboundRequestLimit.exceeded()) {
> > > -            return true;
> > > -        }
> > > -
> > > -        return activeJobs() > (3 * maximumThreads / 5);
> > > +       return false;
> > >      }
> > >
> > >      /**
> > >
> > > --
> > > Tril 0. Byte <[EMAIL PROTECTED]> http://tril.tunes.org/
> > > PGP key fingerprint: DADB ED32 6E54 80D0 7E69  7549 C3A3 446F CAA4 66C0
> > > This message is placed in the public domain.
> > >
> > >  
> > > ------------------------------------------------------------------------
> > > Part 1.2Type: application/pgp-signature
> >
> > _______________________________________________
> > devl mailing list
> > [EMAIL PROTECTED]
> > http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/devl
> 
> -- 
> Freesite
> (0.4) freenet:SSK@npfV5XQijFkF6sXZvuO0o~kG4wEPAgM/homepage//
> 
> _______________________________________________
> devl mailing list
> [EMAIL PROTECTED]
> http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/devl
> 

Attachment: msg03353/pgp00000.pgp
Description: PGP signature

Reply via email to