Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
healing reads should not bypass object cache (openzfs#179)
The performance of healing reads is sometimes relevant. For example, during `zpool import` we do healing reads of the blocks written in the past few TXG's. Also the performance of `zpool scrub` may matter. The current behavior is to bypass all caching for healing reads, including the object cache. However, this has a huge performance impact since we can see ~700x read inflation as we read every object once for each block in it. This inflation is guaranteed for `zpool import` since the last few TXG's are necessarily densely packed into objects. This commit changes the behavior of healing reads to bypass only the zettacache, not the object cache, by default. If the old behavior is desired, the tunable can be changed, or the agent can be restarted the clear the object cache. I would recommend that a later commit removes the tunable and simplifies the code.
- Loading branch information