Brian,

As far as I can tell, the proposal places the burden for ensuring
atomicity entirely on the server. However, PATCH is explicitly not
idempotent. If a client issues a PATCH, and the server executes the PATCH,
but the client then fails to receive an indication of success due to
an extraneous network glitch (and TCP reset?), then what prevents the client
issuing the same PATCH again? In other words, absent a two-phase commit,
there appears to be no transactional integrity.

I think Lisa should respond to this as well. One of the issues here is that I believe there is an assumption that there will be some external means to know that in fact the PATCH succeeded, like for instance retrieving the impacted web pages and comparing results. In thinking about this again, however, perhaps that may not be sufficient, if for instance, PATCH is used for purposes of a side effect that is not easily verified. At that point you probably want something a kin to a transaction ID where you can check against that ID to deterine if it had succeeded.

An alternative view, however, would be that for a specific object type where that is important, one could imbed such a transaction ID somewhere. That's not so easy for common objects we retrieve today (you would have to add some sort of meta tag into an HTML doc, and who knows what you would do with images), but since those objects could easily be retrieved and compared, they're not the problem.

Put this another way: I don't think PATCH is a replacement for all the network database protocols and mechanisms that exist today, but simply closer to what it is named: a means to patch one or more objects.

Eliot
_______________________________________________
Ietf mailing list
Ietf@ietf.org
https://www.ietf.org/mailman/listinfo/ietf

Reply via email to