in pkg/files/store/file.go [38:60]
func (f *file) prefetch(offset int64, count int64) {
go func() {
fileSize, err := f.Fstat()
if err != nil {
return
}
segs, err := math.NewSegments(offset, files.CacheBlockSize, count, fileSize)
if err != nil {
f.reader.Log().Error().Err(err).Msg("prefetch error: failed to create segments")
return
}
for seg := range segs.All() {
f.store.prefetchChan <- prefetchableSegment{
name: f.Name,
reader: f.reader,
offset: seg.Index,
count: seg.Count,
}
}
}()
}