-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Matthew Toseland wrote:
> FMS does bad things to limit load: Rather than queueing every key at 
> MaxRetries=-1, it does all the scheduling itself, doing simple ClientGet's 
> with no maxretries and no priority (hence prio 2), in order to enforce a 
> maximum number of parallel requests. Other client apps probably do similar 
> things. MiniChat presumably does the opposite, constantly requesting keys, 
> starting a new request for the same key when the last one has finished 
> (saces: is this true?).
> 
> The reason that FMS's behaviour is a problem is that ULPRs rely on nodes 
> knowing which keys they are interested in. ULPRs are the main network level 
> optimisation for SSK polling/chat/WoT apps, so this is potentially a big 
> source of problems - excessive load, slow propagation of messages etc.
> 
> Possible solutions:
> 
> DontFetch=true : if set, a request would be purely passive: no requests would 

A minor point probably, but is it at all possible not to use negative there? It
sometimes make FCPv2 standard harder to follow: DontFailToNotFetch=false takes a
few extra seconds to figure out than Fetch=true

> be started as a result of that request, but the node would know it wants 
> those blocks, and if the blocks do come in, the request would progress. 
> Suggested usage is that a client app would set up DontFetch requests for 
> everything it is interested in, with Verbosity sufficiently high, and then 
> poll using whatever load heuristics they want. When a block (typically an SSK 
> block when polling SSK outqueues) is found, either the request succeeds, 
> fatally fails, or it is a redirect. If it is a redirect, the client would get 
> a SimpleProgress and would schedule a normal request to fetch the rest of the 
> key. (This should be fairly easy to implement)
> 
> Client configurable cooldown: Running a request with MaxRetries=-1 means 
> fetching it 3 times every half hour. We could make the half hour bit 
> configurable, and maybe the 3 times too. Note that it is quite likely that we 
> will eventually impose network level limits on polling (e.g. using 
> RecentlyFailed), so setting this low will not necessarily (in the long run) 
> yield better performance. (This should be moderately easy to implement)
> 
> Any other ideas? Is this the right approach? IMHO we can implement whatever 
> API fairly easily, but maybe there are some other ideas?
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Devl mailing list
> Devl@freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl


- --
http://freedom.libsyn.com/       Echo of Freedom, Radical Podcast
http://eng.anarchopedia.org/     Anarchopedia, A Free Knowledge Portal
http://www.freedomporn.org/      Freedom Porn, anarchist and activist smut

 "None of us are free until all of us are free."    ~ Mihail Bakunin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkndsCwACgkQuWy2EFICg+05NACfR91vYCW2StcpNFC/6FTlYrro
j9cAoLqQ7apxP3XLP2CBOW8vYRciOkZx
=dJXO
-----END PGP SIGNATURE-----
_______________________________________________
Devl mailing list
Devl@freenetproject.org
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to