-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add "Download in Sequential Order" to Torrent Settings popup window. #8588
Comments
|
Duplicate request with: Global option will not be done, due to issues it can cause: |
@Seeker2, the only actual issue it can cause, as listed from any of your links, is that "sequential downloading can make the next-to-last pieces (before the very end piece) rarer in the event someone stops seeding after they finish watching the video, since they'll have very little time to share the last few pieces." The other "issues" mentioned are purely FUD. The main point seems to concern the scenario wherein the download speed cannot keep up with the bitrate of the video file. Do note that, firstly, sequential downloading can be performed on any torrent and not just video files. Secondly, that sequential downloading doesn't necessarily translate to instantaneous streaming (there are various benefits to sequential downloading, such as improved disk I/O, which qBittorrent is renowned to be poor at). Thirdly, it is not the client's fault if either the swarm or the downloader cannot transfer traffic fast enough to keep up with realtime file playback. So all of these seem irrelevant to me. It's a shame that I'm limited in my download options considering I have thousands of torrents seeding in the client, my global client ratio is positive, and all of my torrents are overseeded in the first place. I also wonder why per-torrent sequential downloading was implemented at all if it's considered to be problematic? |
Firstly, sequential downloading (Seq. DLing for short) non-video files can help a little with disk I/O, as qBT is terrible with that. Secondly, a major use for Seq. DLing is video streaming, even if it's used for other file formats as well. And there a high UL rate is needed, although ironically not by the video streaming peer - which may make the torrent swarm worse off for it. Thirdly, you claim it's not a clients fault if it ignores some core rules of BitTorrent protocol (random/rarest pieces first -- at least from seeds, also partially disabling Tit-For-Tat with other peers) potentially sabotaging a torrent swarm?! Lastly, it was added because people demanded it and it was in other BT clients, not because it wasn't "problematic": |
Me too, sadly I think that is a lot harder than just extending the sequential downloading functionality to the global options menu. I'd rather you didn't misrepresent my request, because I'm not suggesting we "make Seq. DLing mandatory".
There isn't anything ironic about it - that's simply how P2P works. The main issue I have with the argument that sequential downloading can butcher the swarm, that's really only true if the downloader stops seeding the torrent as soon as they've consumed the stream (as in, suiting the classic definition of a leech). Anyone inclined to do so would already pause the torrent as soon as they have downloaded the data anyway, regardless of sequential downloading. Piece prioritisation is very normal, I'd like you to point out in any BitTorrent spec or draft of spec which requires the use of the Rarest First algo. The paper you link also states "We argue in the following that tit-for-tat fairness is not appropriate in the context of peer-to-peer file replication.", so I think your opinion on sequential downloading may be a little bit unbased. Let's not forget that if the sole seed disconnects from the swarm, no matter what pieces are prioritised by the downloader, half of a file with completed pieces spread out randomly is just as - if not more - useless than half of a file with sequential pieces. And the uploader can upload pieces just as fast sequentially as it can randomly. The issues you linked are also pretty irrelevant to the discussion, as far as I can understand them. When I mentioned that sequential seeding was deemed as problematic, I was referring to the swarm health, not an incorrect (broken) interpretation by the users. May I suggest, if sequential downloading is really seen as so heinous, that it only be enabled on torrents above a certain seed:leech ratio? What number would be sufficient: 10, 20, 50 seeds per leech? |
Many Seq. DLing peers on the same torrent swarm can cause nearly Seq. DLing even for peers not actively using it and even if Seq. DLing peers are not the majority. (I'll explain that later.)
Superseeding http://www.bittorrent.org/beps/bep_0016.html "Prior to this, a seed might have to upload 150% to 200% of the total size of a torrent before other clients became seeds." On a new torrent swarm that has some Seq. DLing peers and regular peers, creating new seeds might be much quicker if the original source seed uses Super Seeding. Another partial example: Admittedly, the VERY NEXT section (2.4.3 Random First Piece) seems to contradict the idea that Rarest First is always the way to go. But that's because it's important for new peers to quickly have something to share rather than always having a rare piece to share. Even the 3.1 Pareto Efficiency section indirectly implies Rarest First. If a peer initially gets only pieces ALL other peers already have, then it has nothing to share with them and its potential UL speed would be wasted unless it uploads to new peers that have nothing. 3.5 Upload Only section says:
Context! In 4.2.1 Fairness Issue section, it states that:
From the paper: Ok, my explanation: In mixed swarms of both regular peers and Seq. DLing peers... Regular peers will "happily" download from Seq. DLing peers... but the regular peers are unlikely to have the next piece the Seq. DLing peer wants in return. Because the regular peers can only download from Seq. DLing peers the pieces those have, regular peers will come to resemble the Seq. DLing peers in piece availability unless seeds are much faster and/or outnumber peers. Seeds don't reciprocate or do Tit-For-Tat with peers, they already have everything and want nothing in return. They won't even favor any remaining peers that helped them become seeds. Instead, seeds keep upload slots to "peers which it has better upload rates to".
All other things held equal, seeds are more likely to upload to Seq. DLing peers (due to their reduced reciprocation) than regular peers.
Torrents can enter "feast-or-famine" where the remaining seeds cannot keep up with demand, and all the peers are "stuck" with the same completed pieces till a seed finishes uploading a complete piece to a peer. qBT/libtorrent goes into a pseudo Endgame Mode almost any time a piece is downloading slowly and other peers have the same piece: |
What a great response, thank you very much for the effort you put into it. You raise a lot of good points and I agree with most of them, some I could probably contest a bit but that's neither here nor there... the very first issue you linked taught me torrents with strong availability (20+) are automatically downloaded sequentially, which is all I need - and by all accounts, a much smarter process than simply enabling a global default. Therefore I retract my initial comment, thanks again for the lengthy replies/discussion. |
Will be in 4.1.2. |
https://i.imgur.com/rfxFxzi.png
The text was updated successfully, but these errors were encountered: