[Libguestfs] [PATCH nbdkit 0/2] Rewrite xz plugin as a filter.

Eric Blake eblake at redhat.com
Wed Nov 21 16:11:19 UTC 2018

On 11/21/18 9:59 AM, Eric Blake wrote:
> On 11/21/18 9:46 AM, Richard W.M. Jones wrote:
>> Matt asked if xz should really be a filter rather than a plugin.  The
>> answer is yes, of course it should be!  That's been something in the
>> todo file for a while.
>> The commit converts the xz plugin code into a filter (leaving the
>> plugin around, but deprecating it).
>>    plugin:  nbdkit xz file.xz
>>    filter:  nbdkit --filter=xz file file.xz
>>    plugin:  # can't be done
>>    filter:  nbdkit --filter=xz curl url=https://example.com/disk.xz
> And further:
> nbdkit --filter=cache --filter=xz curl url=...
> to take advantage of local caching rather than repeated curl requests.

Actually, after reading patch 1, I see that you already do some caching 
directly in the xz filter (copied from the xz plugin), so sticking 
--filter=cache in front of --filter=xz probably won't buy much 
performance, but using:

nbdkit --filter=xz --filter=cache curl url=...

will have two layers of caching (one of the compressed xz data read from 
curl, another of the uncompressed data in the xz filter).  Or, we could 
argue that the xz filter itself doesn't need to concern itself with 
caching (for less code in the xz filter), and just recommend that the 
user supply the --filter=cache themselves for performance (but then you 
wonder if we should start considering nbdkit being able to use the same 
filter more than once in its chain, which right now is not possible).

Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

More information about the Libguestfs mailing list