This document outlines some of the major changes in Azureus since 2.0.7.0, and is a supplement to the ChangeLog.txt. The text "2070" and "2080" used in this document refers to versions 2.0.7.0 and 2.0.8.0 respectively. Changes listed in this document are as follows:
  1. CPU/Memory Reduction
  2. Downloads always start if max downloads has not been reached
  3. Ignore Slow/Stalled Downloads in Max Downloads count
  4. "My Torrents" Window split into Completed and Incompleted sections.
  5. Stop means STOP!
    Don't auto-start torrents that are stopped. Introduce a QUEUED state.
  6. Seeding Rules
  7. "Forced Start" option
    Force the torrent to start downloading/seeding, despite it not being next on the list.
  8. Seeding of read-only torrent data (ie. files on a CD-ROM)
  9. Cheap-O Plugin List
  10. Config View Changes
    Browse button image, no border inside tabs.
  11. More Granular Log To Disk
  12. Categories
  13. Tracker Enhancements
  14. Max # of open files option
  15. More Columns
  16. Language Files

CPU/Memory Reduction

By far, the most important change in 2080 is that it uses far less CPU. Using less CPU also resulted in the memory footprint being reduced. In 2070, high CPU caused a backlog of work for Azureus to do, and all of the backlog required memory.

Downloads always start if max downloads hasn't been reached

In 2070, if you had 5 "Active Torrents" and 2 "Max Simultaneous Downloads", all five could be used for seeding. Adding a new torrent for download would put the torrent in ready status.

Using the same example in 2080, the new torrent will start downloading, and one of the seeding torrents will stop. Adding another new torrent for download will stop yet another seeding torrent. Adding a 3rd new torrent for download will place that torrent in queued status until one of the downloads is done.

Ignore Slow/Stalled Downloads in Max Downloads count

Anything below the threshold you specify will not be counted as using an "Active Download" slot. This means that if you are using all your active download slots, and one of your torrents becomes stalled or slow, another queued torrent will start downloading. The moment the slow/stalled torrent goes over the threshold, the last downloading torrent on your list will re-queue.


"My Torrents" Window Split

The "My Torrents" window changed from a single pane to a split view, with the top half listing incomplete torrents, and the bottom half listing completed torrents.

By default, you can define the order of the torrents in either window. There is also an option to auto-order completed torrents based on seeding rank. See the Seeding Rules section.


STOP == Don't Auto-Start

In 2070, with auto-starting rules turned on, any torrent could start after being stopped. In order to stop torrents from starting again, you had to use the "Disable Seeding Start / Stop Rules" which was burried in the right-click menu.

In 2080, a stopped torrent can never be automatically started.

A "Queued" state was added to replace the old "Stop" state. A queued state means that it is available for auto-starting. It's similar to 2070's "ready" state. The difference between ready and queued is that ready is after the pieces have been checked. Also, a torrent in ready state uses more resources (memory) than a torrent in queued state.

Ready state has almost disappeared in 2080. You may see it briefly between switching from Queued to Seeding/Downloading states, or if the Auto-Seeding rules is waiting (minumum time, 1st Priority) for another torrent to finish up seeding before moving on the the "ready" one.

With the modification of stop and the addition of queued, "Disable Seeding Start / Stop Rules" was no longer needed.

Seeding Rules

2070's main problem with seeding was that it picked the first torrent in the list that matched its criteria, and started seeding it. It didn't take into account that there might be a much needier torrent lower down on the list.

2080 introduces several seeding rules based on a Seeding Rank.

Two of these ranks are based on desperation, which prioritizes your torrents based on how needy they are. Torrents are assigned a Seeding Rank. The torrents with the highest Seeding Rank will start until we don't have any more open slots. The rest will remain in a queued state, ready to be started once a seeding torrent drops in ranking, or completes in some other way (seeding rules). Alternatively, if a queued torrent gains a Seeding Rank higher than an actively seeding torrent, the queued torrent will start and seeding torrent will stop.

One side effect is that the order of torrents can fluctuate within short periods of time. "Minimum Seeding Time" was added to stop the torrents from continously stopping & queueing, only to be started again. Sometimes you will see a queued torrent with a higher ranking than torrents that are seeding. This feature is the cause of that. When the minimum time for one of the seeding torrents runs out, it will go back to queued state, and the torrent higher on the list will start seeding.

Seeding Rank Types

  • Peers:Seed ratio. The higher the ratio, the more desperate the torrent is, and the higher the Seeding Rank will be. This places torrents with 0 seeds at the top of the list, with the exclusion of torrents with 0 seeds and 0 peers (or you can set your peer limit when seeds are 0).
  • Seed Count. In this mode, we first sort by number of seeds ascending, then sort by number of peers in the order you specify via the "prefer larger swarms" field, and then give the torrent a rank. Similar to Peers:Seed ratio, torrents with 0 seeds and 0 peers are sent to the bottom of the list.
  • Timed Rotation. Torrents will be rotated in and out of seeding mode. The length of time they remain seeding is set by the Minimum Seeding Time setting.
  • None. Completed torrents will be started based on their # in the list. You have total control of the order of seeding.


Several options were added to tweak the desperation rankings of the torrents:

When torrents have the same rank, prefer larger swarms

When two or more torrents end up with the same Seeding Rank, you have a choice of preferring the torrent with a larger peer+seed count, or one with a smaller count. The advantage to seeding a larger swarm is that you are helping more people. The advantage to seeding a smaller swarm is that your bandwidth will be more noticed. Note that if you are mostly seeding torrents with very low seed counts, seeding a larger swarm means you are helping out more people AND your bandwidth will noticed a lot.

Lower Seeding Rank for torrents with no seeds and less than X peers

This option is for users who don't care about torrents that only have X number of peers. For example, if you feel it's pointless to seed a torrent with only one peer waiting, you can set "X" to 2.

Pretend there's 1 full copy for every X peers

The more peers that are downloading a torrent, the more theoretical traffic they are preforming, and the less they need seeds. By pretending there's a full copy for every X peers, you lower the ranking of torrents with a lot of peers.
For example, you have the following torrents:
Name | #Seeds | #Peers
 A        50      251  0.199
 B         6       30  0.20
 C         1        5  0.20
 D         3        5  0.75
 E         1        4  0.25
 F         2        9  0.22
 G         2       35  0.057
By default, in Peers:Seed Ratio mode, the order would be G, A, (B or C), (B or C), F, E, D. The other in "Seed Count" mode would be C, E, F, G, B, A. However, if you pretend that there's 1 full copy for every 5 peers, it'll look like this to the seeding rules:
Name | #PretendSeeds   | #Peers
       (original#Seeds)
 A       110(50)           251   0.438
 B        12( 6)            25   0.480
 C         2( 1)             5   0.400
 D         4( 3)             5   0.800
 E         1( 1)             4   0.250
 F         3( 2)             9   0.333
 G         9( 2)            35   0.257
In "Peers:Seed Ratio" the order will now be E, G, F, C, A, B, D.
In "Seed Count" mode the order will now be E, C, F, D, G, B, A.

First Priority

I hope the configuration page explains itself well enough.


The main reason for "First Priority" is to allow continuation of seeding after a torrent moves from downloading to seeding. In fact, the two elapsed time options will not work at all for torrents who already finished in a prior Azureus session.

Also note that torrents with 0 peers can't be tagged as 1st Priority.


Ignore Rules

Ignored torrents will have their reason displayed in the "Seeding Rank" column in the "My Torrents" view. Ignore rules apply to all Seeding Rank types.

Ignore torrents with at least X seeds

This option is for users who don't care about torrents that have lots of seeds. If you think it's pointless to seed a torrent with 100 seeds, set "X" to 100.

Ignore torrents that have at least 1 seed for every X peers

Do you really want to seed a torrent that already has 100 seeds and 100 peers? Set "X" to 1. Don't want to seed a torrent that has 10 seeds and 20 peers? You can do that too.

Ignore torrents with 0 peers

Defaulted on. When set to off, torrents with 0 peers will also be seeded. This is usefull if you started the torrent or just want it to display an active seed on the tracker's page.

Ignore torrents that have a share ratio of x : 1

Used to be "Stop Ratio". But now, the torrent just gets ignored if the ratio is at least X:1.

'Force Start' command

Force the torrent to start downloading/seeding, despite it not being next on the list.

For incompleted torrents, force started torrents are ignored by the "Active Downloading Torrents" count. No downloading torrents will stop when you force another to start. However, if you Force Start a completed torrent, it will count as a used slot, and one of the other seeding torrents will stop.

Force Start can not be overridden by StartStop plugins.
 

Seeding of Read-Only Data

Allow a torrent data to be read-only or on a read-only device. When a torrent starts, open the files in read-only first. If they need to be written to, switch to read-write. If read-write fails, stop the torrent. If a completed torrent is activated, but the device is not ready, the torrent stops and changes to an error state. When the file is available again, you can do a "Force Re-Check" to allow it to go back into queued/seeding mode.


Plugins List

The Plugins Section's main panel contains a list of all plugins that were sucessfully found.


Configuration View Changes

The following is part of an attempt to make the config window display in 640x480.
  • Tabs were replaced by a tree view.
  • Some tabs (now trees) were split into subsections, others were combined.
  • Browse button changed to an image (was "Browse..")
  • Border (grooves) removed from each tab/section
  • Scrollbars added if your window is too small to display all the fields.

More Granular Log To Disk


Categories

Categories have been added so that you can organize your torrents. By default there are no categories. to create a new one, right click somewhere on the "My Torrents" window and select "Set Category", and then "Add Category". Type the name of your category and you will see some buttons appear on the "My Torrents" window. Select a few torrents and drag them to the button. Click on the button to filter by that category.


Tracker Enhancements

From the changelog:
FEATURE: Tracker - various performance enhancements such as announce/scrape caching. Tested to 500,000 peers on single torrent
FEATURE: Tracker activity logging to %azhome%/tracker.log
FEATURE: Tracker bytes in/out + scrapes recorded
FEATURE: Tracker - ability to limit number of peers returned

Tracker Configuration Image

Max # of open files option

Huge amounts of open files seem to cause a problem on some Operating Systems.
No picture, but it's under the Files config section

More Columns

For incomplete torrents:
Column Setup Image

Not as many for completed torrents:
Column Setup Image

Language Files

Azureus 2080 now checks in three locations for language files. These are (in the order they are checked):
  1. User Directory
  2. Application Directory
  3. Azureus JAR file
If a new language file becomes available, simply put it in your user directory and select Language->Refresh in Azureus.

If you'd like to help translate Azureus, see Language FAQ. Also, there's also a bundle editor plugin called i18nAZ which helps find missing entries.

Azureus' language files are named MessagesBundle_xx_ZZ.properties, where: