From: Max Reitz <mreitz@redhat.com>
To: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>,
Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"qemu-block@nongnu.org" <qemu-block@nongnu.org>
Cc: "kwolf@redhat.com" <kwolf@redhat.com>,
"fam@euphon.net" <fam@euphon.net>,
Denis Lunev <den@virtuozzo.com>,
"armbru@redhat.com" <armbru@redhat.com>,
"stefanha@redhat.com" <stefanha@redhat.com>
Subject: Re: [PATCH v5 1/4] block: support compressed write at generic layer
Date: Thu, 24 Oct 2019 17:12:02 +0200 [thread overview]
Message-ID: <f2463f6b-3d61-b64e-2789-e71d7648105c@redhat.com> (raw)
In-Reply-To: <26cfb4ed-941a-11b0-c1cf-bf3c7e354487@virtuozzo.com>
[-- Attachment #1.1: Type: text/plain, Size: 2345 bytes --]
On 24.10.19 16:07, Andrey Shinkevich wrote:
>
>
> On 24/10/2019 16:48, Max Reitz wrote:
>> On 24.10.19 14:56, Andrey Shinkevich wrote:
>>>
>>>
>>> On 24/10/2019 12:34, Max Reitz wrote:
>>>> On 22.10.19 15:53, Andrey Shinkevich wrote:
>>>>
>>>> [...]
>>>>
>>>>> If the support of COW for compressed writes is found feasible, will it
>>>>> make a sense to implement? Then this series will follow.
>>>>
>>>> Hm, what exactly do you mean by support of COW for compressed writes?
>>>>
>>>
>>> I spoke in terms of the commit message with the following ID:
>>>
>>> b0b6862e5e1a1394e0ab3d5da94ba8b0da8664e2
>>>
>>> "qcow2: Fail write_compressed when overwriting data"
>>>
>>> "...qcow2_write_compressed() doesn't perform COW as it would have to do..."
>>>
>>> So, I suggest that we implement writing compressed data to the allocated
>>> clusters rather than qcow2_alloc_compressed_cluster_offset() returns the
>>> error. Particularly, when it comes to NBD server connection failure for
>>> writhing a compressed cluster, it may not be rewritten after the
>>> connection is restored.
>>> Are there any issues with that implementation idea?
>>
>> Well, the COW in that commit is meant differently, because it refers to
>> the COW that’s required when writing to a cluster shared by an internal
>> snapshot.
>>
>> OTOH, you could say that all compressed writes to a cluster that is
>> already allocated would need to do COW because we’d always have to fully
>> rewrite that cluster in an RMW cycle.
>>
>> I don’t see how letting qcow2_alloc_compressed_cluster_offset() use the
>> existing cluster would solve the problem, though. You’d generally need
>> to allocate a new cluster; or attempt to reuse the existing space in a
>> compressed cluster.
>>
>> Max
>>
>
> Yes, new clusters would be allocated for the compressed RMW and the
> existing ones would be reused if possible. It seams to be ineffective
> but users are supposed to know what they do.
> So, does it worth to check a feasibility of the implementation?
I don’t know, Vladimir said that use case wouldn’t be needed.
I think if the option was there, people would actually use it. But I
doubt that anyone misses it sufficiently to warrant the effort.
In addition, there’s still VMDK to consider, too.
Max
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2019-10-24 16:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-20 20:37 [PATCH v5 0/4] qcow2: advanced compression options Andrey Shinkevich
2019-10-20 20:37 ` [PATCH v5 1/4] block: support compressed write at generic layer Andrey Shinkevich
2019-10-22 9:28 ` Max Reitz
2019-10-22 10:21 ` Andrey Shinkevich
2019-10-22 10:46 ` Vladimir Sementsov-Ogievskiy
2019-10-22 11:31 ` Max Reitz
2019-10-22 12:23 ` Vladimir Sementsov-Ogievskiy
2019-10-22 12:56 ` Max Reitz
2019-10-22 13:53 ` Andrey Shinkevich
2019-10-24 9:34 ` Max Reitz
2019-10-24 12:56 ` Andrey Shinkevich
2019-10-24 13:48 ` Max Reitz
2019-10-24 14:07 ` Andrey Shinkevich
2019-10-24 15:12 ` Max Reitz [this message]
2019-10-24 14:27 ` Andrey Shinkevich
2019-10-22 14:28 ` Vladimir Sementsov-Ogievskiy
2019-10-20 20:37 ` [PATCH v5 2/4] qcow2: Allow writing compressed data of multiple clusters Andrey Shinkevich
2019-10-20 20:37 ` [PATCH v5 3/4] tests/qemu-iotests: add case to write " Andrey Shinkevich
2019-10-20 20:37 ` [PATCH v5 4/4] tests/qemu-iotests: add case for block-stream compress Andrey Shinkevich
2019-10-22 9:28 ` Max Reitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f2463f6b-3d61-b64e-2789-e71d7648105c@redhat.com \
--to=mreitz@redhat.com \
--cc=andrey.shinkevich@virtuozzo.com \
--cc=armbru@redhat.com \
--cc=den@virtuozzo.com \
--cc=fam@euphon.net \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=vsementsov@virtuozzo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.