Please sign in to comment.
fat zap should prefetch when iterating
When iterating over a ZAP object, we're almost always certain to iterate over the entire object. If there are multiple leaf blocks, we can realize a performance win by issuing reads for all the leaf blocks in parallel when the iteration begins. For example, if we have 10,000 snapshots, "zfs destroy -nv pool/fs@1%9999" can take 30 minutes when the cache is cold. This change provides a >3x performance improvement, by issuing the reads for all ~64 blocks of each ZAP object in parallel. Reviewed-by: Andreas Dilger <firstname.lastname@example.org> Reviewed-by: Brian Behlendorf <email@example.com> Signed-off-by: Matthew Ahrens <firstname.lastname@example.org> External-issue: DLPX-58347 Closes #8862
- Loading branch information...
Showing with 140 additions and 9 deletions.