You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The zettacache does aggregation of contiguous reads, meaning that we
will do one large `pread()` syscall instead of several small, contiguous
`pread()`'s. This increases performance by decreasing the iops load.
However, if there are small gaps between blocks that we
need to read, aggregation will not be performed, leading to decreased
performance both due to increasing the iops load, and also the
implementation issues subsequent almost-contiguous i/os (up to
`DISK_AGG_CHUNK`) serially (i.e. one after another, rather than in
parallel)
This commit improves performance by allowing small gaps (up to
`DISK_READ_GAP_LIMIT`=8KB) to be spanned over to create a larger
aggregate read.
On a workload of 1MB reads from 4 files (with recordsize=8k), which were
written concurrently, performance doubles (on disks that can do 15K
IOPS, we go from 14K IOPS to 33K IOPS).
0 commit comments