]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Make readahead algorithm linear
authorMatt Joiner <anacrolix@gmail.com>
Thu, 9 Sep 2021 12:16:24 +0000 (22:16 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 9 Sep 2021 12:19:48 +0000 (22:19 +1000)
reader.go
t.go

index 745409f4f3df6404c56cf37ff8da7d0c2674c198..78a2ff00bf2df4d86b48bb4ec3a6c8f2bc7f0166 100644 (file)
--- a/reader.go
+++ b/reader.go
@@ -5,7 +5,6 @@ import (
        "errors"
        "fmt"
        "io"
-       "math"
        "sync"
 
        "github.com/anacrolix/log"
@@ -292,7 +291,7 @@ func (r *reader) log(m log.Msg) {
        r.t.logger.Log(m.Skip(1))
 }
 
-// Implementation inspired from an arbitrary comment I found on HN.
-func (r *reader) sqrtReadahead() int64 {
-       return int64(math.Sqrt(float64(r.pos - r.contiguousReadStartPos)))
+// Implementation inspired by https://news.ycombinator.com/item?id=27019613.
+func (r *reader) defaultReadaheadFunc() int64 {
+       return r.pos - r.contiguousReadStartPos
 }
diff --git a/t.go b/t.go
index 8da398832be19c46bccfbef5ddcbc18318baad87..ebb328835deaa3cfa8f42ba7346b9d5ffcc4e4a4 100644 (file)
--- a/t.go
+++ b/t.go
@@ -42,7 +42,7 @@ func (t *Torrent) newReader(offset, length int64) Reader {
                offset: offset,
                length: length,
        }
-       r.readaheadFunc = r.sqrtReadahead
+       r.readaheadFunc = r.defaultReadaheadFunc
        t.addReader(&r)
        return &r
 }