[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v4 17/21] blockjobs: add PENDING status and event
From: |
John Snow |
Subject: |
Re: [Qemu-devel] [RFC v4 17/21] blockjobs: add PENDING status and event |
Date: |
Tue, 27 Feb 2018 15:54:04 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
On 02/27/2018 03:05 PM, Eric Blake wrote:
> On 02/23/2018 05:51 PM, John Snow wrote:
>> For jobs utilizing the new manual workflow, we intend to prohibit
>> them from modifying the block graph until the management layer provides
>> an explicit ACK via block-job-finalize to move the process forward.
>>
>> To distinguish this runstate from "ready" or "waiting," we add a new
>> "pending" event.
>>
>> For now, the transition from PENDING to CONCLUDED/ABORTING is automatic,
>> but a future commit will add the explicit block-job-finalize step.
>>
>> Transitions:
>> Waiting -> Pending: Normal transition.
>> Pending -> Concluded: Normal transition.
>> Pending -> Aborting: Late transactional failures and cancellations.
>>
>> Removed Transitions:
>> Waiting -> Concluded: Jobs must go to PENDING first.
>>
>> Verbs:
>> Cancel: Can be applied to a pending job.
>>
>
>> +##
>> +# @BLOCK_JOB_PENDING:
>> +#
>> +# Emitted when a block job is awaiting explicit authorization to
>> finalize graph
>> +# changes via @block-job-finalize. If this job is part of a
>> transaction, it will
>> +# not emit this event until the transaction has converged first.
>
> Same question of whether this new event is always emitted (and older
> clients presumably ignore it), or only emitted for clients that
> requested new-style state management.
>
Old style jobs will skip the broadcast of the event, but will still
transition to the state. However, since transition is synchronous, you
likely won't see this state show up in a query for old style jobs.
That was the intent, anyway.
I wanted to be nonintrusive, and felt that this event was likely not
useful in any way unless we were using the new state management scheme.
In the old style, this event will be fully synchronous with COMPLETED or
CANCELLED, for instance.
--js
- Re: [Qemu-devel] [RFC v4 09/21] blockjobs: add CONCLUDED state, (continued)
- [Qemu-devel] [RFC v4 07/21] blockjobs: add block_job_verb permission table, John Snow, 2018/02/23
- [Qemu-devel] [RFC v4 17/21] blockjobs: add PENDING status and event, John Snow, 2018/02/23
- [Qemu-devel] [RFC v4 19/21] blockjobs: Expose manual property, John Snow, 2018/02/23
- Re: [Qemu-devel] [RFC v4 19/21] blockjobs: Expose manual property, Eric Blake, 2018/02/27
- Re: [Qemu-devel] [RFC v4 19/21] blockjobs: Expose manual property, John Snow, 2018/02/27
- Re: [Qemu-devel] [RFC v4 19/21] blockjobs: Expose manual property, John Snow, 2018/02/27
- Re: [Qemu-devel] [RFC v4 19/21] blockjobs: Expose manual property, Eric Blake, 2018/02/27
- Re: [Qemu-devel] [RFC v4 19/21] blockjobs: Expose manual property, Kevin Wolf, 2018/02/28
- Re: [Qemu-devel] [RFC v4 19/21] blockjobs: Expose manual property, John Snow, 2018/02/28
- Re: [Qemu-devel] [RFC v4 19/21] blockjobs: Expose manual property, Kevin Wolf, 2018/02/28