[Libguestfs] [PATCH nbdkit] filters: Add copy-on-write filter.
Eric Blake
eblake at redhat.com
Mon Jan 22 15:57:44 UTC 2018
On 01/21/2018 04:08 PM, Richard W.M. Jones wrote:
> Here's the patch (on top of the preceeding one) which uses a bitmap
> instead of SEEK_DATA.
Yep, I think we'll need this. But perhaps you can have both styles, and
provide a config knob for users to tune which of the two styles they want?
> +++ b/filters/cow/cow.c
> @@ -38,20 +38,22 @@
> * takes up no space.
> *
> * We confine all pread/pwrite operations to the filesystem block
> - * size. The blk_read and blk_write functions below always happen on
> - * whole filesystem block boundaries. A smaller-than-block-size
> - * pwrite will turn into a read-modify-write of a whole block. We
> - * also assume that the plugin returns the same immutable data for
> - * each pread call we make, and optimize on this basis.
> + * size. The blk_* functions below only work on whole filesystem
> + * block boundaries. A smaller-than-block-size pwrite will turn into
> + * a read-modify-write of a whole block. We also assume that the
> + * plugin returns the same immutable data for each pread call we make,
> + * and optimize on this basis.
> *
> - * When reading a block we first check the temporary file to see if
> - * that file block is allocated or a hole. If allocated, we return it
> - * from the temporary file. If a hole, we issue a pread to the
> - * underlying plugin.
> + * A block bitmap is maintained in memory recording if each block in
> + * the temporary file is "allocated" (1) or "hole" (0).
> + *
> + * When reading a block we first check the bitmap to see if that file
> + * block is allocated or a hole. If allocated, we return it from the
> + * temporary file. If a hole, we issue a pread to the underlying
> + * plugin.
Do we also want a knob that says whether to cache things in the
temporary file (copy-on-read)? That way, a user can choose whether to
cache things locally rather than always reading from the underlying
plugin, even for blocks that do not get written.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20180122/beb3a785/attachment.sig>
More information about the Libguestfs
mailing list