mirror_zfs/man
Alexander Motin 5e5fd0a178
Speculative prefetch for reordered requests
Before this change speculative prefetcher was able to detect a stream
only if all of its accesses are perfectly sequential.  It was easy to
implement and is perfectly fine for single-threaded applications.
Unfortunately multi-threaded network servers, such as iSCSI, SMB or
NFS usually have plenty of threads and may often reorder requests,
preventing successful speculation and prefetch.

This change allows speculative prefetcher to detect streams even if
requests are reordered by introducing a list of 9 non-contiguous
ranges up to 16MB ahead of current stream position and filling the
gaps as more requests arrive.  It also allows stream to proceed
even with holes up to a certain configurable threshold (25%).

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by:	Alexander Motin <mav@FreeBSD.org>
Sponsored by:	iXsystems, Inc.
Closes #16022
2024-04-08 15:13:27 -07:00
..
man1 RAID-Z expansion feature 2023-11-08 10:19:41 -08:00
man4 Speculative prefetch for reordered requests 2024-04-08 15:13:27 -07:00
man5 Consistentify miscellaneous style on remaining manpages 2021-06-09 14:35:53 -07:00
man7 vdev props comment and manpage should include zfsd and FreeBSD mentions 2024-04-03 17:56:34 -07:00
man8 zinject: inject device errors into ioctls 2024-04-08 11:59:04 -07:00
Makefile.am man: move zfs_prepare_disk.8 to nodist_man_MANS 2024-04-03 18:04:15 -07:00