What's new in 2.20

This is where we publish all great news

What's new in 2.20

Postby maksis » 21 Jul 2011, 15:33

This post has been written to explain a few new features that will be introduced in AirDC++ 2.20. Many of them are only available in ADC hubs that aren't very common yet (ADC hubs can be identified from the address which starts with adc:// or adcs://). They will most likely become more popular later on this year so more people are then able to use the new features.

2.20 Beta 1 containing the explained features below (+several other changes and fixes) is available to download for all beta testers. Feel free to post any questions or suggestions in this thread.


Multiple per user connections (ADC only)

Many users with a fast connection have probably noticed that you can't max out your connection from one user, even if both users have free bandwidth. The maximum speed per connection is often 1-3 MB/s and even lower if the users are living on different continents. Allowing multiple connections for the same user should boost the speeds in these cases significantly.

How does the feature work? Let's say that there's a 100Mbit user with 6 upload slots open and another user with 100Mbit connect start to download from him. The downloader is now able to create 6 connections and probably maxes out his connection.

Does this mean that the uploader now doesn't have slots available for other user? No. The upload are always counted as per user, not per connections. This even applies if both users have multiple common hubs, given that the common hubs are using ADC. In this example case the uploader still has 5 out of 6 upload slots available.

What happens when another user tries to download from him? If the new downloader also supports multiple connection, the slots are divided equally. The new downloader will get 3 connections and 3 connections from the old downloader are being disconnected. Both downloaders will now also have fourth connection waiting for more slot to become available.

When a third downloader appears, the slots are shared again (2/2/2) and this will continue to happen as long as each downloader only has the one reserved download connection. After that the new downloaders will added to the waiting users queue just like with the current clints (waiting connections for the existing downloaders will never be queued and they will get more connections only if there are slots available and no users in the waiting queue).


Connection limits per user

All users are able to set the maximum number of connections per user for his downloads and uploads with some limitations. 2.20 will set slots and per user limits automatically based on upload and download speed. The current slot limits are as following (both for upload and download):

    Slower than 10 Mbit: 1 connection per user
    10 Mbit: 2 connections per user
    > 10 Mbit and <= 20 Mbit: 3 connections per user
    > 20 Mbit and <= 50 Mbit: 5 connections per user
    > 50 Mbit and < 100 Mbit: 7 connections per user
    100 Mbit: 9 connections per user
    Faster than 100 Mbit: unlimited ( = the number of total upload slots)

If the user has less slots open that the per user connection limit is, the total number of upload slots is being applied. If an user lowers his per user upload slots from the default value, the number of per user download slots is also being set to the same value. The number of additional slots from the default value is also being limited to 0-4 based on the connection speed.


A dedicated slot for partial lists and small files

This is something that should be useful for all users, regardless of the connection speed or the location. Currently when you are browsing partial lists and then add something from in your queue, the browsing becomes very slow because because you need to wait for the current file to finish every time when you want to move to different folder in a partial list. The same waiting also happens when you for example want to view a NFO file from a filelist while you are downloading from the same user.

The new version will always allow downloading files with the maximum size of 64KB or partial files instantly by creating an own connection for them which won't be used for downloading other files. This extra slot isn't being included in any per user connection limits nor it will cause balancing uploads on the uploaders side.



Partial list improvements

In addition to using an own slot for partial lists, there are other improvements too (also for non-ADC users). The aim is to reduce the need to use full filelists so people with slow connections don't need to waste most of their upload speed for sending full filelists. Partial lists are much smaller and lighter to handle for the downloader.

Searching from the whole share by using partial lists may be available in 2.20 but it hasn't been implemented yet. The following features have been implemented in Beta 1:


Show the size of a folder (with an unknown content) and the last modify date

This information is only available if the remote user is also using the new client version.


Show dupe folders and dupe files (similar to full lists)

With partial lists, the whole content of the list can't be know so all folders with an unknown content are being set as partial dupes if a release with the same name is being found from an own share. This feature works with all partial lists, regardless of the client of the remote user.


Recursive partial lists (only available in ADC hubs)

These are only being used when downloading folders with an unknown content. If you try to download a folder from a partial list without going through all subfolders in it, the client will now get a small recursive partial list only contains files and folders inside the folder being downloaded.

AirDC++ 2.10 already supports using recursive partial lists when downloading folders straight from the search window or when adding sources via auto search.
User avatar
maksis
Site Admin
 
Posts: 606
Joined: 23 Nov 2010, 18:56

Return to Announcement & News

Who is online

Users browsing this forum: Google [Bot] and 1 guest

cron