Files
mirror_zfs/include/sys
Matthew Ahrens d9b4bf0665 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 <andreas.dilger@whamcloud.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
External-issue: DLPX-58347
Closes #8862
2019-06-12 13:13:09 -07:00
..
2019-05-07 15:18:44 -07:00
2019-03-29 09:13:20 -07:00
2017-10-05 19:28:00 -07:00
2016-01-08 15:08:19 -08:00
2019-05-07 15:18:44 -07:00
2018-09-05 18:33:36 -07:00
2019-05-07 15:18:44 -07:00
2018-10-09 14:05:13 -07:00
2019-05-07 15:18:44 -07:00
2019-05-07 15:18:44 -07:00
2019-03-13 10:58:39 -07:00
2018-10-01 10:40:11 -07:00
2013-11-04 11:17:48 -08:00
2017-01-03 11:31:18 -06:00
2017-12-07 10:28:50 -08:00
2017-10-11 16:54:48 -04:00
2019-03-29 09:13:20 -07:00
2019-03-29 09:13:20 -07:00
2018-05-29 16:00:33 -07:00
2018-10-03 15:30:55 -07:00
2016-04-21 09:49:25 -07:00
2016-06-07 09:16:52 -07:00
2018-02-13 14:54:54 -08:00
2019-03-29 09:13:20 -07:00
2019-05-09 10:08:05 -07:00
2015-01-06 16:53:24 -08:00
2019-03-29 09:13:20 -07:00
2017-07-13 13:54:00 -04:00
2013-11-04 10:55:25 -08:00
2019-03-29 09:13:20 -07:00
2019-03-29 09:13:20 -07:00
2019-03-29 09:13:20 -07:00
2019-03-29 09:13:20 -07:00
2019-06-12 13:13:09 -07:00
2018-02-08 15:28:18 -08:00
2018-02-08 15:28:18 -08:00
2018-06-15 15:10:42 -07:00
2018-02-13 14:54:54 -08:00
2017-03-10 09:51:33 -08:00
2019-03-29 09:13:20 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2019-05-07 15:18:44 -07:00
2018-02-13 14:54:54 -08:00
2018-02-13 14:54:54 -08:00
2018-09-06 21:44:52 -07:00
2019-06-10 11:48:42 -07:00
2019-06-10 11:48:42 -07:00
2017-03-29 12:24:51 -07:00
2019-03-29 09:13:20 -07:00
2019-03-29 09:13:20 -07:00
2019-03-29 09:13:20 -07:00
2017-07-12 13:05:37 -07:00