Jon Brock wrote:
--- Toad <[EMAIL PROTECTED]> wrote:


Any other suggestions? Any detail as to why/how a particular option would work?


Right now when the bandwidth limit is exceeded, all queries are rejected,
right? What about if you just stop sending new files. Return a pointer to the
node it thinks most likely has the file according to its routing table, or even
where it got it from. If the resulting query is successful, the other node
should be credited as well (for ngrouting purposes).

This would be self-defeating. The whole point is to have more successes. If we stop transferring a file (the devs call it a "key"), then we'll be reducing the chances of a success.


Let me use a biological analogy: Say your goal is to have a whole bunch of babies (don't ask my why you'd want this). Also, say you're a woman from another planet (say, Mars), and you can actually get pregnant while you're pregnant. However, you can't have more than a certain number since you can't poop them all out of your vagina that fast. So, instead the best strategy is to abort the most recently-conceived fetuses, and let those normal 3-headed Martian babies survive.

Your method would be to cut out that cute 20-fingered tyke from it's mommy's belly and stick it into some surrogate mommy (or maybe even an incubator), risking the life (lives?) of little Tom, Dick, and Harry. Sure, you'd be able to have more live babies coming out of you, but why not let the other Martian women make their babies naturally. In the end, you'd end up with more babies, since you wouldn't be taking chances with them by performing the C-secion.


I guess the idea is that if bandwidth is used up, but cpu isn't, then only bandwidth intensive things should be stopped. On the other hand, if cpu is used up and bandwidth isn't, and we get a request for a key we have, we should still answer it. Checking the local datastore for a key isn't very hard compared to routing, right?

Another idea is to have a queue, and give priority to requests that are closer
to one of the node's specialization areas. If all bandwidth is used up, but a
new request comes in for a key that we have and is in our specialization, pause
the most irrelevant transfer for a while and send that. Wouldn't that also
cause ngrouting on the paused node to be less likely to route irrelevant
requests later on? Then you would just need code that begins searching for
other sources when the transfer drops below an acceptable speed.

I'm confused... Could you put that in terms of Martian babies?


-Martin


_______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to