Multiple torrents accessing shared file(s)
If you have multiple torrents that have a different info-hash but contain identical files (same size, same content) and really need to run them at the same time. Azureus offers an option to do that.
To allow multiple running torrents accessing the same file where at least one of them requires write access you have to switch to the advanced user mode and then go to Options > Files and then disable Enforce exclusive file write access locking across torrents
You then need to rename/retarget the files in question to the same file on the file system. To do so open the torrent details and go to the Files tab and then rightclick on each file and select Rename or Retarget. The same can be done in the Torrent Open popup window by changing the destination of each file to an existing one.
Please note that this option merely allows you to run multiple torrents on the same file. This will not synchronize their piece completion states. To do the syncing you have to go to the My Torrents View and enable Rightclick > Advanced > Files > Periodically recheck incomplete pieces for each torrent that should check for pieces that have been added by other torrents. That is, if you have torrent A downloading and torrent B simply uploading what you get from torrent A you have to enable the periodic recheck for torrent B. If both of them are downloading you should enable the recheck for at least one torrent (the one with the smaller pieces size). Generally those rechecks are limited to 250KiB/s to reduce the disk load especially for large torrents where they run continuously.
There are the following conditions that make this feature useful and efficient:
- High completion percentage
- To get the last few missing pieces for a file on a swarm that has a low availability
- To merge several swarms with very low download speeds
- The faster the swarm the more inefficient that feature becomes due to the recheck speed and non-aligned piece boundaries
- Different torrents with aligned piece boundaries
- Piece boundaries are aligned when the torrents have an identical file layout (i.e. just different file names) or just added files at the end. Another possibility are different piece sizes, that case mostly occurs on single-file torrents. But if the size differs too much only the torrent with the smaller piece size will benefit from the other one since it's unlikely that a bunch of small pieces are downloaded in a row to form one larger piece unless the completion is very high.
- Bridging private and public swarms
- This way it is possible to transfer between different non-intermixable swarms even when one or more of those torrents are still downloading
This feature is incompatible with:
- Move-file-on-completion options - if one torrent completes download and tries to move the data files while a second torrent is still in progress, things are going to break
- Auto-suffix addition for incomplete files - again, this is going to confuse things when files from one torrent complete and are renamed to remove the suffix while another torrent is still in progress
This feature shouldn't be used under the following conditions:
- All torrents have a good download speed or availability
- Using concurrent access to a single file can actually worsen your download speed or increase the amount of downloaded data up to 2 times the file size
- Piece sizes differ dramatically and the completion is lower than ~80%
- The shared access can be performed sequentially instead of synchronously (finishing the downloading torrents first, then upload to all of them in a shared manner)
- Files with apparently identical content but different binary content (different versions, re-encodes or altered metadata) this would lead to a deadlock of 2 torrents overwriting and overwriting each other's downloads.