You suggestion sounds good. Thank you for creating the patch - I reviewed it and overall
it looks good.
From: SPDK [mailto:firstname.lastname@example.org] On Behalf Of Amir More
Sent: Thursday, April 18, 2019 11:07 AM
Subject: [SPDK] Blobstore snapshot creation patch
While looking at the code for snapshot creation in blobstore I saw that the cluster maps
of the snapshot and original blob are copied/zeroed with memcpy/memset (respectively) at
the critical moment that io is frozen to the original blob. This imposes two O(n)
operations, where n is the number of bytes in the cluster map(s) of snapshotted blobs.
This adds a significant delay in io to the snapshotted blob, which is quite painful if
that blob is an active lvol.
Is this on purpose? We can zero the new cluster map before the io freeze, then swap the
pointers between the blobs during the freeze. If I've missed something please let me
I've submitted a patch for the blobstore:
SPDK mailing list