[Pulp-dev] 3.0 Validation update
Jeff Ortel
jortel at redhat.com
Mon Apr 17 19:22:13 UTC 2017
I'm still in favor of having both update and delete operations synchronous for these reasons:
1. Simpler.
2. Getting a 201 on a resource delete/update seems odd from the REST point of view.
3. We want update/delete to be immediate and we'd want any task in progress to discontinue as soon as
possible. Basically, error out.
4. Image these tasks queued up [SYNC][SYNC][SYNC][DEL] ... we'd waste a ton of cycles syncing a repo that the
user wants to delete. And, the delete get's delayed by hours. Not what the user intended.
On 04/17/2017 12:55 PM, Michael Hrivnak wrote:
>
>
> On Mon, Apr 17, 2017 at 1:26 PM, Brian Bouterse <bbouters at redhat.com <mailto:bbouters at redhat.com>> wrote:
>
> @asmacdo, your points cause me to also think that all importer/publisher update and delete operations
> should be tasks that use the tasking reservations system. That will cause them to never run while a sync
> or publish for instance is running. I'm interested in hearing more thoughts on this from others.
>
>
> Doing updates and deletes in tasks keeps the Pulp 2 behavior, which is safe and reasonably well-understood.
> That's a fine way to go.
>
> I think the delete is especially advantageous to do in a task, so the object never disappears while an import
> or publish related task is running.
>
> Update is easier to do synchronously. If it's a task, we have to worry about saving a diff for the object
> (presumably as an argument to the task), then applying that diff in the running task and validating it the way
> the REST API would. That's doable, but we'd have to do it. :) It's very tempting to do it synchronously and
> let the REST API do what it does for free.
>
> That said, just because it's the easy option doesn't mean it's the right one. Doing the update synchronously,
> as has been pointed out, allows for the possibility that the importer config will change between when the task
> is queued and when it runs. I think that's fine and reasonable, but it could be seen as a downside.
>
> Consider that while doing an update in a task could be more predictable in one way, it could also create its
> own confusion. Consider an API user who sees a representation of an importer in the DB and submits changes to
> it, but doesn't realize there are already other changes queued as tasks.
>
> Neither approach seems perfect, but I lean toward synchronous updates to avoid the diff+validation challenge
> and the (potentially very long) delay in changes being visible.
>
>
>
> A related question... are importers or publishers ever shared with multiple repos in Pulp3?
>
>
> Nope.
>
>
> --
>
> Michael Hrivnak
>
> Principal Software Engineer, RHCE
>
> Red Hat
>
>
>
> _______________________________________________
> Pulp-dev mailing list
> Pulp-dev at redhat.com
> https://www.redhat.com/mailman/listinfo/pulp-dev
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 847 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20170417/5170fc63/attachment.sig>
More information about the Pulp-dev
mailing list