zfs/include/sys
Sara Hartse 37f03da8ba Fast Clone Deletion
Deleting a clone requires finding blocks are clone-only, not shared
with the snapshot. This was done by traversing the entire block tree
which results in a large performance penalty for sparsely
written clones.

This is new method keeps track of clone blocks when they are
modified in a "Livelist" so that, when it’s time to delete,
the clone-specific blocks are already at hand.

We see performance improvements because now deletion work is
proportional to the number of clone-modified blocks, not the size
of the original dataset.

Reviewed-by: Sean Eric Fagan <sef@ixsystems.com>
Reviewed-by: Matt Ahrens <matt@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Serapheim Dimitropoulos <serapheim@delphix.com>
Signed-off-by: Sara Hartse <sara.hartse@delphix.com>
Closes #8416
2019-07-26 10:54:14 -07:00
..
crypto
fm Add zpool status -s (slow I/Os) and -p (parseable) 2018-11-08 16:47:24 -08:00
fs Race condition between spa async threads and export 2019-07-18 13:02:33 -07:00
lua
sysevent Add TRIM support 2019-03-29 09:13:20 -07:00
Makefile.am Log Spacemap Project 2019-07-16 10:11:49 -07:00
abd.h single-chunk scatter ABDs can be treated as linear 2019-06-11 09:02:31 -07:00
aggsum.h
arc.h
arc_impl.h
avl.h
avl_impl.h
blkptr.h
bplist.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
bpobj.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
bptree.h
bqueue.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
cityhash.h
dataset_kstats.h port async unlinked drain from illumos-nexenta 2019-02-12 10:41:15 -08:00
dbuf.h Decrease contention on dn_struct_rwlock 2019-07-08 13:18:50 -07:00
ddt.h Remove dedupditto functionality 2019-06-19 14:54:02 -07:00
dmu.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
dmu_impl.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_objset.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
dmu_recv.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_redact.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_send.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_traverse.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_tx.h
dmu_zfetch.h Replace zf_rwlock with a mutex 2019-07-25 11:57:58 -07:00
dnode.h Remove code for zfs remap 2019-06-24 16:44:01 -07:00
dsl_bookmark.h Fix comments on zfs_bookmark_phys 2019-06-22 16:32:26 -07:00
dsl_crypt.h Allow unencrypted children of encrypted datasets 2019-06-20 12:29:51 -07:00
dsl_dataset.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dsl_deadlist.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
dsl_deleg.h Remove code for zfs remap 2019-06-24 16:44:01 -07:00
dsl_destroy.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
dsl_dir.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
dsl_pool.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
dsl_prop.h
dsl_scan.h
dsl_synctask.h OpenZFS 9425 - channel programs can be interrupted 2019-06-22 16:51:46 -07:00
dsl_userhold.h
edonr.h
efi_partition.h
frame.h
hkdf.h
metaslab.h Log Spacemap Project 2019-07-16 10:11:49 -07:00
metaslab_impl.h Log Spacemap Project 2019-07-16 10:11:49 -07:00
mmp.h MMP interval and fail_intervals in uberblock 2019-03-21 12:47:57 -07:00
mntent.h
multilist.h Avoid extra taskq_dispatch() calls by DMU 2019-06-25 12:03:38 -07:00
note.h
nvpair.h
nvpair_impl.h
objlist.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
pathname.h Disable unused pathname::pn_path* (unneeded in Linux) 2019-07-15 13:57:56 -07:00
policy.h
range_tree.h Log Spacemap Project 2019-07-16 10:11:49 -07:00
refcount.h
rrwlock.h
sa.h
sa_impl.h
sdt.h
sha2.h
skein.h
spa.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
spa_boot.h
spa_checkpoint.h Serialize ZTHR operations to eliminate races 2019-01-13 10:09:46 -08:00
spa_checksum.h
spa_impl.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
spa_log_spacemap.h Log Spacemap Project 2019-07-16 10:11:49 -07:00
space_map.h Log Spacemap Project 2019-07-16 10:11:49 -07:00
space_reftree.h
sysevent.h
trace.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_acl.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_arc.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_common.h
trace_dbgmsg.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_dbuf.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_dmu.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_dnode.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_multilist.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_rrwlock.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_txg.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_vdev.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_zil.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_zio.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
trace_zrlock.h 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
txg.h OpenZFS 9425 - channel programs can be interrupted 2019-06-22 16:51:46 -07:00
txg_impl.h
u8_textprep.h
u8_textprep_data.h
uberblock.h
uberblock_impl.h MMP interval and fail_intervals in uberblock 2019-03-21 12:47:57 -07:00
uio_impl.h deadlock between mm_sem and tx assign in zfs_write() and page fault 2018-10-16 11:11:24 -07:00
unique.h
uuid.h
vdev.h Add TRIM support 2019-03-29 09:13:20 -07:00
vdev_disk.h
vdev_file.h
vdev_impl.h Log Spacemap Project 2019-07-16 10:11:49 -07:00
vdev_indirect_births.h
vdev_indirect_mapping.h
vdev_initialize.h Add TRIM support 2019-03-29 09:13:20 -07:00
vdev_raidz.h Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_impl.h Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_removal.h panic in removal_remap test on 4K devices 2019-06-13 13:12:39 -07:00
vdev_trim.h Add TRIM support 2019-03-29 09:13:20 -07:00
xvattr.h
zap.h fat zap should prefetch when iterating 2019-06-12 13:13:09 -07:00
zap_impl.h
zap_leaf.h
zcp.h OpenZFS 9425 - channel programs can be interrupted 2019-06-22 16:51:46 -07:00
zcp_global.h
zcp_iter.h
zcp_prop.h
zfeature.h
zfs_acl.h
zfs_context.h Fix lockdep recursive locking false positive in dbuf_destroy 2019-07-17 09:18:24 -07:00
zfs_ctldir.h
zfs_debug.h Log Spacemap Project 2019-07-16 10:11:49 -07:00
zfs_delay.h
zfs_dir.h port async unlinked drain from illumos-nexenta 2019-02-12 10:41:15 -08:00
zfs_fuid.h
zfs_ioctl.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
zfs_onexit.h
zfs_project.h
zfs_ratelimit.h
zfs_rlock.h
zfs_sa.h
zfs_stat.h
zfs_sysfs.h
zfs_vfsops.h Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
zfs_vnops.h
zfs_znode.h Fix `zfs set atime|relatime=off|on` behavior on inherited datasets 2019-05-07 10:06:30 -07:00
zil.h make zil max block size tunable 2019-06-10 11:48:42 -07:00
zil_impl.h make zil max block size tunable 2019-06-10 11:48:42 -07:00
zio.h Remove dedupditto functionality 2019-06-19 14:54:02 -07:00
zio_checksum.h
zio_compress.h lz4_decompress_abd declared but not defined 2019-06-13 13:14:34 -07:00
zio_crypt.h
zio_impl.h Add TRIM support 2019-03-29 09:13:20 -07:00
zio_priority.h Add TRIM support 2019-03-29 09:13:20 -07:00
zpl.h
zrlock.h
zthr.h Fast Clone Deletion 2019-07-26 10:54:14 -07:00
zvol.h