mirror_zfs/module
Tom Caputi c317c8c811 Allow empty ds_props_obj to be destroyed
Currently, 'zfs list' and 'zfs get' commands can be slow when
working with snapshots that have a ds_props_obj. This is
because the code that discovers all of the properties for these
snapshots needs to read this object for each snapshot, which
almost always ends up causing an extra random synchronous read
for each snapshot. This performance penalty exists even if the
properties on that snapshot have been unset because the object
is normally only freed when the snapshot is freed, even though
it is only created when it is needed.

This patch allows the user to regain 'zfs list' performance on
these snapshots by destroying the ds_props_obj when it no longer
has any entries left. In practice on a production machine, this
optimization seems to make 'zfs list' about 55% faster.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Paul Zuchowski <pzuchowski@datto.com>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #9704
2019-12-13 11:51:39 -08:00
..
avl Wrap Linux module macros 2019-11-01 10:41:03 -07:00
icp ICP: Fix out of bounds write 2019-12-06 09:36:19 -08:00
lua Move linux qsort def to platform header 2019-12-03 09:49:40 -08:00
nvpair Restructure nvlist_nv_alloc to work on FreeBSD 2019-11-30 15:45:06 -08:00
os Make zfs_replay.c work on FreeBSD 2019-12-13 07:54:10 -08:00
spl OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
unicode Wrap Linux module macros 2019-11-01 10:41:03 -07:00
zcommon Add FreeBSD jail support hooks 2019-12-11 11:58:37 -08:00
zfs Allow empty ds_props_obj to be destroyed 2019-12-13 11:51:39 -08:00
.gitignore Adapt gitignore for modules 2019-12-02 13:23:47 -08:00
Makefile.in module/Makefile.in: don't run xargs if empty 2019-10-08 10:10:23 -07:00