]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit - gnu/usr.bin/cc/cc_tools/i386-freebsd.opt
MFV r353619: 9691 fat zap should prefetch when iterating
authorAndriy Gapon <avg@FreeBSD.org>
Wed, 16 Oct 2019 07:09:00 +0000 (07:09 +0000)
committerAndriy Gapon <avg@FreeBSD.org>
Wed, 16 Oct 2019 07:09:00 +0000 (07:09 +0000)
commit0c4f60b734311ebe2d1b23b2937f0418c3fb8704
treea9202b6cba7d06a26a4f3f8c22951b8a28455480
parent9efb961d9a2729ac59ee40380290cf291b7311fe
parentf4902c2a07172325115df5f6dad0519d4a63244f
MFV r353619: 9691 fat zap should prefetch when iterating

illumos/illumos-gate@52abb70e073c2a88808c0d66fd810ba8c5080572
https://github.com/illumos/illumos-gate/commit/52abb70e073c2a88808c0d66fd810ba8c5080572

https://www.illumos.org/issues/9691
  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.

Author: Matthew Ahrens <mahrens@delphix.com>
Obtained from: illumos
MFC after: 2 weeks
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c