|
Description
|
CR 6386929 reports that the initial zfs list is slow. This is correct. For example, on a Thumper with about 27k zfs datasets, the initial zfs list of all datasets takes over 3 minutes while a subsequent zfs list takes 30 seconds.
The reason is that zfs list is single threaded and is dominated by I/O wait times. So the initial zfs list spends most of its time waiting for I/O while a subsequent zfs list requires no I/O. See the comments in 6386929 for more details.
However, this problem is not specific to zfs list. The zfs get, inherit, allow, unallow, and upgrade commands all provide options to iterate over datasets. These commands can also take a long time but subsequent runs complete much faster. Also, other commands such as destroying a snapshot with dependent clones can produce this same problem.
The solution for 6386929 should also address this problem for all of these cases. This CR is intended to cover all of these. The solution should also handle iteration over multiple pools, as well as iterations over a sub-hierachy of a single pool.
|