Matt Joiner
|
c895a21a16
|
Track chunks read for webseed peers too
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
33d3a75cd3
|
Rename file
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
906db030f3
|
Add peerConnMsgWriter file
Forgot this earlier, new to Sublime Merge.
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
a2dbec3b4a
|
Add chansync interfaces
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
47c49735fc
|
Fix race in piece availability runs
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
36f52d7a14
|
Apply next request state asynchronously
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
d37dea1f61
|
Move peerConnMsgWriter into its own file
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
24ceed61da
|
Break out peerConnWriter
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
925f5d147d
|
Resolve local replaces
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
b43987fcc8
|
Fix up some crashes around piece availability
|
2021-06-07 13:01:40 +10:00 |
Matt Joiner
|
1a27e14391
|
Don't always force piece reallocation
The balancing for unforced pieces may not be exactly what we want yet.
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
95d808d3c5
|
Use rejiggered missinggo bitmap
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
a26e7f9933
|
Determine peer max requests based on receive speed
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
86524214f5
|
Merge maxRequests into localClientReqq
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
42bf6b58a6
|
Fix in decPieceAvailability when we don't have torrent info
Happens when we close a Peer before getting Torrent info.
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
fcc4ef2b95
|
Fix sqlite piece completion
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
ad298364aa
|
Add client-level max unverified bytes
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
63b0e42731
|
Get max unverified bytes working
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
307d6d178f
|
Prepare to implement max unverified bytes
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
8e9cb9f2be
|
Do checks for preallocated requests too
Otherwise we reserve requests with the assumption that they can be assigned later, and they actually might not be.
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
9dd85e5bd2
|
Fix non-deterministic test
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
b80e2b08b5
|
Get request rebalancing working optimally!
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
4e9f707aeb
|
Move piece allocation to its own func
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
07ba6e9210
|
New tests and fixes for them
Not complete. There's still a request-stealing balancing issue, but it's functional for now.
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
e7c5ed679f
|
Don't log each applied request
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
26837ee73c
|
Add a working request strategy test
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
0d4e566fc0
|
Extract request strategy stuff into a separate module
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
233135493f
|
Improve num requests per piece status output
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
f19564d597
|
Improve piece availability status output
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
ef489f4a44
|
Fixes to reassigning chunks in requests
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
09823b9e36
|
Rework to improve work stealing and try to thread peers through all request pieces
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
4577e8a3c1
|
Forgot to remove initial have all state for webseeds
Later when the webseed was closed, it was assumed that it had contributed to the piece availability count.
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
16eb8a9693
|
Do requests every 100ms
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
a2fcce5374
|
Don't need stable sort
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
fc06909014
|
Improve naming on storage key
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
875ead3582
|
Reuse pieceRequestOrder slice
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
99a7cb9291
|
Missed piece availability code
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
d9172ef277
|
Comments
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
6d25c99ac6
|
Ignore pieces for request after accounting for storage
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
b508877d82
|
Track peer availability at the Torrent-level
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
2d2456249a
|
Remove unused pieceRequestOrder in Client
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
52e6979457
|
go mod tidy
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
977a3ec00f
|
Use multiless with Float64
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
9c9ba1aeac
|
PeerConn.post becomes PeerConn.write
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
56e2a8a3a6
|
Fix download rate, status output
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
5f8471e21b
|
Rework storage.TorrentImpl to support shared capacity key
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
6e97ce952f
|
Tidy up request and cancel
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
5f437e6b7f
|
Remove empty file
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
b2c68b314b
|
Limit outstanding requests
|
2021-06-07 13:01:39 +10:00 |
Matt Joiner
|
0830589b0a
|
Pass tests with new full-client request strategy implementation
|
2021-06-07 13:01:39 +10:00 |