made sequenced_download_threshold a per torrent setting. Updated the project page layout. Removed incorrect invariant checks in piece picker.
This commit is contained in:
162
docs/manual.html
162
docs/manual.html
@@ -75,89 +75,90 @@
|
||||
<li><a class="reference" href="#connect-peer" id="id57" name="id57">connect_peer()</a></li>
|
||||
<li><a class="reference" href="#set-ratio" id="id58" name="id58">set_ratio()</a></li>
|
||||
<li><a class="reference" href="#set-upload-limit-set-download-limit" id="id59" name="id59">set_upload_limit() set_download_limit()</a></li>
|
||||
<li><a class="reference" href="#set-peer-upload-limit-set-peer-download-limit" id="id60" name="id60">set_peer_upload_limit() set_peer_download_limit()</a></li>
|
||||
<li><a class="reference" href="#pause-resume-is-paused" id="id61" name="id61">pause() resume() is_paused()</a></li>
|
||||
<li><a class="reference" href="#is-seed" id="id62" name="id62">is_seed()</a></li>
|
||||
<li><a class="reference" href="#has-metadata" id="id63" name="id63">has_metadata()</a></li>
|
||||
<li><a class="reference" href="#set-tracker-login" id="id64" name="id64">set_tracker_login()</a></li>
|
||||
<li><a class="reference" href="#trackers-replace-trackers" id="id65" name="id65">trackers() replace_trackers()</a></li>
|
||||
<li><a class="reference" href="#add-url-seed" id="id66" name="id66">add_url_seed()</a></li>
|
||||
<li><a class="reference" href="#use-interface" id="id67" name="id67">use_interface()</a></li>
|
||||
<li><a class="reference" href="#info-hash" id="id68" name="id68">info_hash()</a></li>
|
||||
<li><a class="reference" href="#id5" id="id69" name="id69">set_max_uploads() set_max_connections()</a></li>
|
||||
<li><a class="reference" href="#write-resume-data" id="id70" name="id70">write_resume_data()</a></li>
|
||||
<li><a class="reference" href="#metadata" id="id71" name="id71">metadata()</a></li>
|
||||
<li><a class="reference" href="#id6" id="id72" name="id72">status()</a></li>
|
||||
<li><a class="reference" href="#get-download-queue" id="id73" name="id73">get_download_queue()</a></li>
|
||||
<li><a class="reference" href="#get-peer-info" id="id74" name="id74">get_peer_info()</a></li>
|
||||
<li><a class="reference" href="#get-torrent-info" id="id75" name="id75">get_torrent_info()</a></li>
|
||||
<li><a class="reference" href="#is-valid" id="id76" name="id76">is_valid()</a></li>
|
||||
<li><a class="reference" href="#set-sequenced-download-threshold" id="id60" name="id60">set_sequenced_download_threshold()</a></li>
|
||||
<li><a class="reference" href="#set-peer-upload-limit-set-peer-download-limit" id="id61" name="id61">set_peer_upload_limit() set_peer_download_limit()</a></li>
|
||||
<li><a class="reference" href="#pause-resume-is-paused" id="id62" name="id62">pause() resume() is_paused()</a></li>
|
||||
<li><a class="reference" href="#is-seed" id="id63" name="id63">is_seed()</a></li>
|
||||
<li><a class="reference" href="#has-metadata" id="id64" name="id64">has_metadata()</a></li>
|
||||
<li><a class="reference" href="#set-tracker-login" id="id65" name="id65">set_tracker_login()</a></li>
|
||||
<li><a class="reference" href="#trackers-replace-trackers" id="id66" name="id66">trackers() replace_trackers()</a></li>
|
||||
<li><a class="reference" href="#add-url-seed" id="id67" name="id67">add_url_seed()</a></li>
|
||||
<li><a class="reference" href="#use-interface" id="id68" name="id68">use_interface()</a></li>
|
||||
<li><a class="reference" href="#info-hash" id="id69" name="id69">info_hash()</a></li>
|
||||
<li><a class="reference" href="#id5" id="id70" name="id70">set_max_uploads() set_max_connections()</a></li>
|
||||
<li><a class="reference" href="#write-resume-data" id="id71" name="id71">write_resume_data()</a></li>
|
||||
<li><a class="reference" href="#metadata" id="id72" name="id72">metadata()</a></li>
|
||||
<li><a class="reference" href="#id6" id="id73" name="id73">status()</a></li>
|
||||
<li><a class="reference" href="#get-download-queue" id="id74" name="id74">get_download_queue()</a></li>
|
||||
<li><a class="reference" href="#get-peer-info" id="id75" name="id75">get_peer_info()</a></li>
|
||||
<li><a class="reference" href="#get-torrent-info" id="id76" name="id76">get_torrent_info()</a></li>
|
||||
<li><a class="reference" href="#is-valid" id="id77" name="id77">is_valid()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#torrent-status" id="id77" name="id77">torrent_status</a></li>
|
||||
<li><a class="reference" href="#peer-info" id="id78" name="id78">peer_info</a></li>
|
||||
<li><a class="reference" href="#session-settings" id="id79" name="id79">session_settings</a></li>
|
||||
<li><a class="reference" href="#ip-filter" id="id80" name="id80">ip_filter</a><ul>
|
||||
<li><a class="reference" href="#id8" id="id81" name="id81">ip_filter()</a></li>
|
||||
<li><a class="reference" href="#add-rule" id="id82" name="id82">add_rule()</a></li>
|
||||
<li><a class="reference" href="#access" id="id83" name="id83">access()</a></li>
|
||||
<li><a class="reference" href="#export-filter" id="id84" name="id84">export_filter()</a></li>
|
||||
<li><a class="reference" href="#torrent-status" id="id78" name="id78">torrent_status</a></li>
|
||||
<li><a class="reference" href="#peer-info" id="id79" name="id79">peer_info</a></li>
|
||||
<li><a class="reference" href="#session-settings" id="id80" name="id80">session_settings</a></li>
|
||||
<li><a class="reference" href="#ip-filter" id="id81" name="id81">ip_filter</a><ul>
|
||||
<li><a class="reference" href="#id8" id="id82" name="id82">ip_filter()</a></li>
|
||||
<li><a class="reference" href="#add-rule" id="id83" name="id83">add_rule()</a></li>
|
||||
<li><a class="reference" href="#access" id="id84" name="id84">access()</a></li>
|
||||
<li><a class="reference" href="#export-filter" id="id85" name="id85">export_filter()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#big-number" id="id85" name="id85">big_number</a></li>
|
||||
<li><a class="reference" href="#hasher" id="id86" name="id86">hasher</a></li>
|
||||
<li><a class="reference" href="#fingerprint" id="id87" name="id87">fingerprint</a></li>
|
||||
<li><a class="reference" href="#free-functions" id="id88" name="id88">free functions</a><ul>
|
||||
<li><a class="reference" href="#identify-client" id="id89" name="id89">identify_client()</a></li>
|
||||
<li><a class="reference" href="#client-fingerprint" id="id90" name="id90">client_fingerprint()</a></li>
|
||||
<li><a class="reference" href="#bdecode-bencode" id="id91" name="id91">bdecode() bencode()</a></li>
|
||||
<li><a class="reference" href="#big-number" id="id86" name="id86">big_number</a></li>
|
||||
<li><a class="reference" href="#hasher" id="id87" name="id87">hasher</a></li>
|
||||
<li><a class="reference" href="#fingerprint" id="id88" name="id88">fingerprint</a></li>
|
||||
<li><a class="reference" href="#free-functions" id="id89" name="id89">free functions</a><ul>
|
||||
<li><a class="reference" href="#identify-client" id="id90" name="id90">identify_client()</a></li>
|
||||
<li><a class="reference" href="#client-fingerprint" id="id91" name="id91">client_fingerprint()</a></li>
|
||||
<li><a class="reference" href="#bdecode-bencode" id="id92" name="id92">bdecode() bencode()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#alerts" id="id92" name="id92">alerts</a><ul>
|
||||
<li><a class="reference" href="#listen-failed-alert" id="id93" name="id93">listen_failed_alert</a></li>
|
||||
<li><a class="reference" href="#file-error-alert" id="id94" name="id94">file_error_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-announce-alert" id="id95" name="id95">tracker_announce_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-alert" id="id96" name="id96">tracker_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-reply-alert" id="id97" name="id97">tracker_reply_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-warning-alert" id="id98" name="id98">tracker_warning_alert</a></li>
|
||||
<li><a class="reference" href="#url-seed-alert" id="id99" name="id99">url_seed_alert</a></li>
|
||||
<li><a class="reference" href="#hash-failed-alert" id="id100" name="id100">hash_failed_alert</a></li>
|
||||
<li><a class="reference" href="#peer-ban-alert" id="id101" name="id101">peer_ban_alert</a></li>
|
||||
<li><a class="reference" href="#peer-error-alert" id="id102" name="id102">peer_error_alert</a></li>
|
||||
<li><a class="reference" href="#invalid-request-alert" id="id103" name="id103">invalid_request_alert</a></li>
|
||||
<li><a class="reference" href="#torrent-finished-alert" id="id104" name="id104">torrent_finished_alert</a></li>
|
||||
<li><a class="reference" href="#metadata-failed-alert" id="id105" name="id105">metadata_failed_alert</a></li>
|
||||
<li><a class="reference" href="#metadata-received-alert" id="id106" name="id106">metadata_received_alert</a></li>
|
||||
<li><a class="reference" href="#fastresume-rejected-alert" id="id107" name="id107">fastresume_rejected_alert</a></li>
|
||||
<li><a class="reference" href="#dispatcher" id="id108" name="id108">dispatcher</a></li>
|
||||
<li><a class="reference" href="#alerts" id="id93" name="id93">alerts</a><ul>
|
||||
<li><a class="reference" href="#listen-failed-alert" id="id94" name="id94">listen_failed_alert</a></li>
|
||||
<li><a class="reference" href="#file-error-alert" id="id95" name="id95">file_error_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-announce-alert" id="id96" name="id96">tracker_announce_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-alert" id="id97" name="id97">tracker_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-reply-alert" id="id98" name="id98">tracker_reply_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-warning-alert" id="id99" name="id99">tracker_warning_alert</a></li>
|
||||
<li><a class="reference" href="#url-seed-alert" id="id100" name="id100">url_seed_alert</a></li>
|
||||
<li><a class="reference" href="#hash-failed-alert" id="id101" name="id101">hash_failed_alert</a></li>
|
||||
<li><a class="reference" href="#peer-ban-alert" id="id102" name="id102">peer_ban_alert</a></li>
|
||||
<li><a class="reference" href="#peer-error-alert" id="id103" name="id103">peer_error_alert</a></li>
|
||||
<li><a class="reference" href="#invalid-request-alert" id="id104" name="id104">invalid_request_alert</a></li>
|
||||
<li><a class="reference" href="#torrent-finished-alert" id="id105" name="id105">torrent_finished_alert</a></li>
|
||||
<li><a class="reference" href="#metadata-failed-alert" id="id106" name="id106">metadata_failed_alert</a></li>
|
||||
<li><a class="reference" href="#metadata-received-alert" id="id107" name="id107">metadata_received_alert</a></li>
|
||||
<li><a class="reference" href="#fastresume-rejected-alert" id="id108" name="id108">fastresume_rejected_alert</a></li>
|
||||
<li><a class="reference" href="#dispatcher" id="id109" name="id109">dispatcher</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#exceptions" id="id109" name="id109">exceptions</a><ul>
|
||||
<li><a class="reference" href="#invalid-handle" id="id110" name="id110">invalid_handle</a></li>
|
||||
<li><a class="reference" href="#duplicate-torrent" id="id111" name="id111">duplicate_torrent</a></li>
|
||||
<li><a class="reference" href="#invalid-encoding" id="id112" name="id112">invalid_encoding</a></li>
|
||||
<li><a class="reference" href="#type-error" id="id113" name="id113">type_error</a></li>
|
||||
<li><a class="reference" href="#invalid-torrent-file" id="id114" name="id114">invalid_torrent_file</a></li>
|
||||
<li><a class="reference" href="#exceptions" id="id110" name="id110">exceptions</a><ul>
|
||||
<li><a class="reference" href="#invalid-handle" id="id111" name="id111">invalid_handle</a></li>
|
||||
<li><a class="reference" href="#duplicate-torrent" id="id112" name="id112">duplicate_torrent</a></li>
|
||||
<li><a class="reference" href="#invalid-encoding" id="id113" name="id113">invalid_encoding</a></li>
|
||||
<li><a class="reference" href="#type-error" id="id114" name="id114">type_error</a></li>
|
||||
<li><a class="reference" href="#invalid-torrent-file" id="id115" name="id115">invalid_torrent_file</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#fast-resume" id="id115" name="id115">fast resume</a><ul>
|
||||
<li><a class="reference" href="#file-format" id="id116" name="id116">file format</a></li>
|
||||
<li><a class="reference" href="#fast-resume" id="id116" name="id116">fast resume</a><ul>
|
||||
<li><a class="reference" href="#file-format" id="id117" name="id117">file format</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#threads" id="id117" name="id117">threads</a></li>
|
||||
<li><a class="reference" href="#storage-allocation" id="id118" name="id118">storage allocation</a><ul>
|
||||
<li><a class="reference" href="#full-allocation" id="id119" name="id119">full allocation</a></li>
|
||||
<li><a class="reference" href="#compact-allocation" id="id120" name="id120">compact allocation</a></li>
|
||||
<li><a class="reference" href="#threads" id="id118" name="id118">threads</a></li>
|
||||
<li><a class="reference" href="#storage-allocation" id="id119" name="id119">storage allocation</a><ul>
|
||||
<li><a class="reference" href="#full-allocation" id="id120" name="id120">full allocation</a></li>
|
||||
<li><a class="reference" href="#compact-allocation" id="id121" name="id121">compact allocation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#extensions" id="id121" name="id121">extensions</a><ul>
|
||||
<li><a class="reference" href="#chat-messages" id="id122" name="id122">chat messages</a></li>
|
||||
<li><a class="reference" href="#metadata-from-peers" id="id123" name="id123">metadata from peers</a></li>
|
||||
<li><a class="reference" href="#http-seeding" id="id124" name="id124">HTTP seeding</a></li>
|
||||
<li><a class="reference" href="#extensions" id="id122" name="id122">extensions</a><ul>
|
||||
<li><a class="reference" href="#chat-messages" id="id123" name="id123">chat messages</a></li>
|
||||
<li><a class="reference" href="#metadata-from-peers" id="id124" name="id124">metadata from peers</a></li>
|
||||
<li><a class="reference" href="#http-seeding" id="id125" name="id125">HTTP seeding</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#filename-checks" id="id125" name="id125">filename checks</a></li>
|
||||
<li><a class="reference" href="#acknowledgments" id="id126" name="id126">acknowledgments</a></li>
|
||||
<li><a class="reference" href="#filename-checks" id="id126" name="id126">filename checks</a></li>
|
||||
<li><a class="reference" href="#acknowledgments" id="id127" name="id127">acknowledgments</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="overview">
|
||||
@@ -1127,6 +1128,7 @@ struct torrent_handle
|
||||
void set_max_connections(int max_connections) const;
|
||||
void set_upload_limit(int limit) const;
|
||||
void set_download_limit(int limit) const;
|
||||
void set_sequenced_download_threshold(int threshold) const;
|
||||
|
||||
void set_peer_upload_limit(asio::ip::tcp::endpoint ip, int limit) const;
|
||||
void set_peer_download_limit(asio::ip::tcp::endpoint ip, int limit) const;
|
||||
@@ -1250,6 +1252,24 @@ Note that setting a higher limit on a torrent then the global limit (<tt class="
|
||||
will not override the global rate limit. The torrent can never upload more than the global rate
|
||||
limit.</p>
|
||||
</div>
|
||||
<div class="section" id="set-sequenced-download-threshold">
|
||||
<h2><a name="set-sequenced-download-threshold">set_sequenced_download_threshold()</a></h2>
|
||||
<blockquote>
|
||||
<pre class="literal-block">
|
||||
void set_sequenced_download_threshold(int threshold);
|
||||
</pre>
|
||||
</blockquote>
|
||||
<p>sequenced-download threshold is the limit on how popular a piece has to be
|
||||
(popular == inverse of rarity) to be downloaded in sequence instead of in
|
||||
random (rarest first) order. It can be used to tweak disk performance in
|
||||
settings where the random download property is less necessary. For example, if
|
||||
the threshold is 10, all pieces which 10 or more peers have, will be downloaded
|
||||
in index order. This setting defaults to 100, which means that it is disabled
|
||||
in practice.</p>
|
||||
<p>Setting this threshold to a very small value will affect the piece distribution
|
||||
negatively in the swarm. It should basically only be used in situations where
|
||||
the random seeks on the disk is the download bottleneck.</p>
|
||||
</div>
|
||||
<div class="section" id="set-peer-upload-limit-set-peer-download-limit">
|
||||
<h2><a name="set-peer-upload-limit-set-peer-download-limit">set_peer_upload_limit() set_peer_download_limit()</a></h2>
|
||||
<blockquote>
|
||||
@@ -1836,7 +1856,6 @@ struct session_settings
|
||||
|
||||
int piece_timeout;
|
||||
float request_queue_time;
|
||||
int sequenced_download_threshold;
|
||||
int max_allowed_in_request_queue;
|
||||
int max_out_request_queue;
|
||||
int whole_pieces_threshold;
|
||||
@@ -1877,13 +1896,6 @@ it times out if no piece response is returned.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">request_queue_time</span></tt> is the length of the request queue given in the number
|
||||
of seconds it should take for the other end to send all the pieces. i.e. the
|
||||
actual number of requests depends on the download rate and this number.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">sequenced_download_threshold</span></tt> is the limit on how popular a piece has to be
|
||||
(popular == inverse of rarity) to be downloaded in sequence instead of in
|
||||
random (rarest first) order. It can be used to tweak disk performance in
|
||||
settings where the random download property is less necessary. For example, if
|
||||
the threshold is 10, all pieces which 10 or more peers have, will be downloaded
|
||||
in index order. This setting defaults to 100, which means that it is disabled
|
||||
in practice.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">max_allowed_in_request_queue</span></tt> is the number of outstanding block requests
|
||||
a peer is allowed to queue up in the client. If a peer sends more requests
|
||||
than this (before the first one has been handled) the last request will be
|
||||
|
Reference in New Issue
Block a user