]> git.proxmox.com Git - mirror_zfs.git/commit - module/zfs/zil.c
Remove fastwrite mechanism.
authorAlexander Motin <mav@FreeBSD.org>
Fri, 28 Jul 2023 20:30:33 +0000 (16:30 -0400)
committerGitHub <noreply@github.com>
Fri, 28 Jul 2023 20:30:33 +0000 (13:30 -0700)
commitb22bab2547b74b5df5e4698880e7d027b1d44509
tree9074850fb8baebb959e7535f21d26c2d20c88ff9
parent5bdfff5cfc8baff48b3b59a577e7ef756a011024
Remove fastwrite mechanism.

Fastwrite was introduced many years ago to improve ZIL writes spread
between multiple top-level vdevs by tracking number of allocated but
not written blocks and choosing vdev with smaller count.  It suposed
to reduce ZIL knowledge about allocation, but actually made ZIL to
even more actively report allocation code about the allocations,
complicating both ZIL and metaslabs code.

On top of that, it seems ZIO_FLAG_FASTWRITE setting in dmu_sync()
was lost many years ago, that was one of the declared benefits. Plus
introduction of embedded log metaslab class solved another problem
with allocation rotor accounting both normal and log allocations,
since in most cases those are now in different metaslab classes.

After all that, I'd prefer to simplify already too complicated ZIL,
ZIO and metaslab code if the benefit of complexity is not obvious.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Wilson <george.wilson@delphix.com>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #15107
include/sys/metaslab.h
include/sys/vdev_impl.h
include/sys/zil_impl.h
include/sys/zio.h
module/zfs/metaslab.c
module/zfs/vdev.c
module/zfs/zil.c
module/zfs/zio.c