HomeFreeBSD

Fast Clone Deletion

Description

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

Details

Provenance
Sara Hartse <sara.hartse@delphix.com>Authored on Jul 26 2019, 5:54 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jul 26 2019, 5:54 PM
Parents
rGd274ac546098: Don't directly cast unsigned long to void*
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG37f03da8ba6e: Fast Clone Deletion (authored by Sara Hartse <sara.hartse@delphix.com>).Jul 26 2019, 5:54 PM