A problem of latency during a read of a file is solved by activating
multiple concurrent read threads and also by prefetching blocks of file
data from storage to a file system cache. Prefetching ensures that by the
time that a client or application needs more file data, the file data
will already have been read from storage and written to the cache as a
background operation. For example, a file server responds to a request to
read an extent of file data consisting of eight consecutive file blocks
by activating concurrent block read threads for reading the file blocks
and by prefetching from the storage to the cache eight more consecutive
blocks of data from the file.