patchmldonkey, a multi-networks file-sharing client - Patches: patch #4337, improved upload scheduler


You are not allowed to post comments on this tracker with your current authentication level.

patch #4337: improved upload scheduler

Submitted by:  pango <mlpango>
Submitted on:  Mon 22 Aug 2005 11:06:23 PM UTC  
Category:  None Priority:  5 - Normal
Status:  Done Assigned to:  spiralvoice <spiralvoice>
Open/Closed:  Closed

( Jump to the original submission)

Thu 06 Oct 2005 07:17:22 PM UTC, comment #6: 

I remembered some bugs reported by users on IRC channel, recent
discussions shows no errors are present in this patch, so I applied
it to CVS 2005/10/06.

spiralvoice <spiralvoice>
Project AdministratorIn charge of this item.
Thu 06 Oct 2005 03:26:19 PM UTC, comment #5: 

Why is this postponed? Are there problems?

Tue 13 Sep 2005 12:48:26 AM UTC, comment #4: 

Small fix, bittorrent support was counting bandwidth twice (hence was sending just half of what was allowed)

pango <mlpango>
Project Member
Tue 06 Sep 2005 11:49:08 PM UTC, comment #3: 

Bandwidth (and connections) counters are called "controlers" in mldonkey, and for some reason their bandwidth estimation is often off by a too large factor. Patch #4374 fixes a bug in controlers, but it is far from enough, the reason for inaccuracies remains unclear.

Something else that can be done, instead of using this arbitrary 0.90 factor, is to call "consume_bandwidth" in each place where "overhead" is being sent. Using streaming credits will delay or even lower the bandwidth used for upload, effectively giving a higher priority to overhead.

pango <mlpango>
Project Member
Tue 06 Sep 2005 08:20:43 AM UTC, comment #2: 

having tested the 0.90 improvment on a low upload line i can say it doesnt help enough as this patch works very efficiantly and doesnt see all the outgoing bandwidth and still hurting traffic by creating more traffic

to get this to work a fully working bandwidth counter needs to be created

Tue 23 Aug 2005 10:13:38 AM UTC, comment #1: 

perhaps using the emule way of calculating bandwidth usage is in order, they use two parameters: actual bandwidth and shared bandwidth ( they even had a nice wizard for it ) making calculation easier

Mon 22 Aug 2005 11:06:23 PM UTC, original submission:  

Changes :

  • Send data earlier (don't wait for bandwidth "credit" before sending;

  instead, send, and wait for bandwidth credit to get positive again.
  TCP sockets, network card queues, etc. are there for buffering!)

  • Try as much as possible to send 10kB packets (packet_size, below),

  increasing efficiency. Should be checked, specially with very slow
  (RTC) links.

  • It tries to be more constant, by using both accurate timing and doing

  some streaming. It currently tries to send 2 10kB packets "ahead"
  (streaming_amount, below).

  • I did my best to make new code as simple and as readable as possible.

Data is pushed more aggressively in output buffers, possibly unveiling
bugs in client_can_upload handlers that wouldn't consistently test
whether there's enough free space in socket before sending data.  That
patch should be tested, specially using the different network

It could also unveil bugs in output traffic management. I think
there's a potential problem with max_hard_upload_rate definition,
that is used for both overall outgoing TCP traffic limit
(upload_control) and outgoing payload rate target (payload_bandwidth),
theorically leaving to room for TCP overhead, p2p management traffic,

pango <mlpango>
Project Member


Attached Files
file #9100:  4337_3.patch added by mlpango (12KiB - text/x-patch)
file #9340:  4337_2.patch added by spiralvoice (11KiB - application/octet-stream - updated patch with Pangos proposal "* 0.90")


Depends on the following items: None found

Items that depend on this one: None found


CC list is empty


Do you think this task is very important?
If so, you can add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.




Follow 6 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2005-10-06 spiralvoice StatusPostponed => Done
    Open/ClosedOpen => Closed
2005-09-21 spiralvoice StatusNone => Postponed
2005-09-13 mlpango Attached File- => Added 4337_3.patch, #5167
2005-09-05 spiralvoice Attached File- => Added 4337_2.patch, #5144
2005-08-22 mlpango Attached File- => Added better_upload_scheduler_v2.patch, #5060

Back to the top

Powered by Savane 3.5