[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-users] upload queues, priorities, and .mli files

From: Jason Baker
Subject: [Mldonkey-users] upload queues, priorities, and .mli files
Date: Wed, 6 Jul 2005 10:22:44 -0500

I noticed the following in docs/developers/mldonkey-design.tex:

>  The long upload queue sorts the clients requesting to enter the upload
> queue in a fifo order. This means that the oldest clients are always in the
> top of the queue (ie they have a lot of upload slots in other clients, even
> if they cannot use them at full speed), whereas new clients (for example
> newbies) have to wait for days to see their downloads start. Clearly, 
> to get as many users as possible, it is important for newbies that they 
> immediatly download something from the network, even if it is not a lot.
> Long upload-queues are good for long term users, those who are the most used
> to waiting long for files...

Is this still the current feeling on upload queues?  It is in tension
with the third argument against credit systems in the same document.
Someone waiting for a rare and interesting file may end up competing
against an ever-changing group of people waiting for more popular and
easily downloaded files.

On the other hand, the current pending list favors downloader (who
remain connected more than a few seconds) over upload-only clients.
One can preserve this property by choosing an uploader from the
connected hosts on the queue.

I've started working on an upload queue for three reasons
   * as part of a faithful implementation of the priority system I
     described a couple days ago
   * to reduce allocation overhead in the pending list
   * to favor long-suffering requesters of obscure files

Spreading obscure files is actually my main concern.  I want to assign
priorities inversely to the frequency of upload requests, so that
every file rather than every host, gets an equal share of my

I've noticed that there are no .mli files in daemon/common.  Why is
this?  I wish there where .mli files so that I could easily
distinguish between implementation and interface functions, as well as
benefit from better build dependencies.  I've started putting one
together for  Is this a useful thing?

Also, does anyone have any development tips?  For instance, is it
possible to build an interpreter with mlnet builtin, and run mlnet
inside the interpreter?  Or, is it possible to debug optimized code
with either the ocaml debugger or gdb?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]