toad wrote:
> Because messages in the transfer queue generally are sent after all
> other messages, and are therefore higher latency?

That might be true for the real code, but in the simulation code we keep 
two queues, one for transfers and one for searches. Each time we build a 
packet (Peer.pack()), we alternate between putting transfers in first 
and putting searches in first. This interleaves transfers and searches 
without giving priority to either - I know it's important for searches 
to be low-latency, but if we gave them strict priority over transfers it 
would be possible for a transfer to keep getting pre-empted by searches 
until it timed out.

This change just moves DataInserts and ChkDataFounds from the search 
queue to the transfer queue, so they never get overtaken by their own 
data blocks.

Cheers,
Michael

Reply via email to