This is somewhat in response to the "when overloading is the normal condition, we have to handle it more gracefully" line of argument from a month or two ago, and mainly in response to nodes (most famously Toast's) dropping all of their refs when there's an overload pocket nearby.
What I propose is this: Compute a "minimum total CP" with a formula something like 0.75*(numrefs + 1), and insure that the sum of the CP of all the noderefs we have does not drop below this value (the appropriate place to do this would be, of course, the Decrement CP method). If we're decrementing and it would pull the sum below this value, re-distribute the excess (er, anti-excess) evenly across all of the refs (yes, including the one we're bumping down. this will make sense further down I hope.) It shouldn't be necessary to do anything about an upper limit, since an individual node can't break 1.0. (Except make sure that the "add it in" doesn't break 1.0 anywhere) It'll still be possible to drop the CP of a node low enough that it'll get removed, but it won't be possible to kill off a whole ton of them at once. The fewer refs we have (or the lower the average CP gets), the harder it gets to drag more down... it's sort of like a "waterbed theory of CP". Out on the swing bench, I was absolutely convinced that this would be good for the network, but I think I've forgotten some of my best arguments. Is anyone willing to try this? I'm still to java-incompetent to code it, but if anyone wants to write it, I'd love to look at it. >:) --hobbs
msg03207/pgp00000.pgp
Description: PGP signature
