Is `zfs destroy fs@snapshot`, a blocking 'stop the world' operation?

Or can reads, and preferably writes, that are outside the snapshot (basically everything) still progress?


In short: no, a zfs destroy will not block normal IO on recent (circa post-2013) ZFS versions.

Additional details: since many years, ZFS supports a features called "async destroy" which runs in a background thread without blocking normal IO. From zpool man page:

freeing After a file system or snapshot is destroyed, the space it was using is returned to the pool asynchronously. freeing is the amount of space remaining to be reclaimed. Over time freeing will decrease while free increases.

Sure you can see a slight drop in IO performance, but it should be quite tolerable; moreover, there are tunables to adapt it to your requirements.