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

Submitter:  pango <mlpango>
Submitted:  Mon 22 Aug 2005 11:06:23 PM UTC
   
 
Category:  None Priority:  5 - Normal
Status:  Done Assigned to:  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>
Group administrator
Thu 06 Oct 2005 03:26:19 PM UTC, comment #5: 

Why is this postponed? Are there problems?

Anonymous
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>
Group 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>
Group 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

Anonymous
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

Anonymous
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
supports.

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,
etc.

pango <mlpango>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

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

 

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

 

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.13-758e.
Corresponding source code