[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 03/10] migration: migrate 'inc' command option is deprecat
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v4 03/10] migration: migrate 'inc' command option is deprecated. |
Date: |
Tue, 17 Oct 2023 07:53:27 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Juan Quintela <quintela@redhat.com> writes:
> Markus Armbruster <armbru@redhat.com> wrote:
>> Juan Quintela <quintela@redhat.com> writes:
>>
>>> Markus Armbruster <armbru@redhat.com> wrote:
>>>> Juan Quintela <quintela@redhat.com> writes:
>>> So what I want, I want to remove -i/-b in the next version (9.0?). For
>>> the other, I want to remove it, but I don't care if the code is around
>>> in "deprecated" state for another couple of years if there are still
>>> people that feel that they want it.
>>>
>>> This is the reason that I put a pointer for -i/-b to
>>> @block/@block-incremental. They are "perfect" replacements.
>>>
>>> I can put here to use blockdev-mirror + NBD, but the replacement is not
>>> so direct.
>>>
>>> Does this make sense?
>>
>> I see where you're coming from. Now let's change perspective for a
>> minute: what's the purpose of deprecating stuff?
>>
>> We normally deprecate with intent to remove.
>>
>> We don't remove right away, because we promised to first deprecate for a
>> grace period, so users can adjust in an orderly manner. The deprecation
>> serves as signal "you need to adjust". The documentation that comes
>> with it should help with the adjustment. It's commonly of the form "use
>> $alternative instead". The alternative is often a direct replacement,
>> but not always. There could even be no replacement at all. We don't
>> promise replacements, we promise an orderly process, so users can
>> adjust.
>>
>> Sometimes, we don't have firm plans to remove, but are more like "maybe
>> remove when gets in the way". We could soften the "you need to adjust"
>> signal in documentation, but I doubt that's a good idea. Regardless,
>> the need to help users adjust remains.
>>
>> Back to your patches. There are two separate interfaces to block
>> migration, and both are deprecated at the end of the series:
>>
>> 1. Migration parameter @block-incremental & friends
>>
>> Not in the way, content to keep around for longer if it helps users.
>>
>> The deprecation documentation advises to use block-mirror with NBD
>> instead. All good.
>>
>> 2. QMP migrate parameters @inc and @blk
>>
>> Firm intent to remove as soon as the grace period expires, because
>> it's in the way.
>>
>> The deprecation documentation advises to use interface 1 instead.
>> But that's deprecated, too!
>>
>> Insufficiently careful readers will miss that the replacement is
>> deprecated, and just use it. Risks surprise when the replacement
>> goes away, too.
>>
>> More careful readers will realize that this advises to use something
>> we elsewhere advise not to use. Contradiction! Confusion ensues.
>>
>> On further reflection, these readers might conclude that the
>> *combined* advice is to use block-mirror with NBD instead. This is
>> correct.
>>
>> So why not tell them?
>>
>> Perhaps you'd like to give more nuanced advice, like "you should move
>> to block-mirror with NBD, but if that's not practical for you, you
>> should at least move to @block-incremental & friends, which will
>> likely stick around for longer." That's fine. All I'm asking for is
>> to not make things more confusing than they need to be :)
>>
>> [...]
>
> Telling this in deprecated.rst is enough? or you want me to put it also
> in the error/warn messages and qapi?
Let's make all of them point to blockdev-mirror with NBD. If you think
mentioning @block-incremental & friends would be useful in some or all
places would be useful, go ahead, I don't mind.
- [PATCH v4 09/10] [RFC] migration: Remove support for block_incremental, (continued)
- [PATCH v4 09/10] [RFC] migration: Remove support for block_incremental, Juan Quintela, 2023/10/13
- [PATCH v4 08/10] [RFC] migration: Remove helpers needed for -i/-b migrate options, Juan Quintela, 2023/10/13
- [PATCH v4 05/10] migration: Deprecate block migration, Juan Quintela, 2023/10/13
- [PATCH v4 10/10] [RFC] migration: Remove block migration support, Juan Quintela, 2023/10/13
- [PATCH v4 06/10] migration: Deprecate old compression method, Juan Quintela, 2023/10/13
- [PATCH v4 03/10] migration: migrate 'inc' command option is deprecated., Juan Quintela, 2023/10/13