| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-01-30 | |||
| 22:37:00 | efried | edleafe: With PUT, yes. Not with DELETE, which doesn't accept a payload. The latter is a definite (but separate) problem. | |
| 22:37:37 | efried | edleafe: But even the former only guarantees that we're deleting what we thought we were deleting. The lack of generation in the return is a problem for *subsequent* updates. | |
| 22:38:11 | efried | ...unless we continue to make assumptions about how placement does generations. Which IMO is wrong. | |
| 22:38:40 | edleafe | efried: So say I get the generation back from the PUT/DELETE. Right after that, other requests modify the resource. What good does getting back gen+1 from the request do me then? | |
| 22:39:54 | efried | edleafe: In that scenario, it doesn't save you anything, because your next update will 409 and you have to re-GET the provider and its associated stuff before you redrive your update. | |
| 22:40:19 | efried | edleafe: It's in the scenario where the resource provider *doesn't* change that it saves us. | |
| 22:40:36 | edleafe | efried: I still don't see that | |
| 22:40:38 | efried | edleafe: Because without it, we *have* to do that re-GET in order to glean the new generation. | |
| 22:40:46 | efried | (again, unless assumptions) | |
| 22:41:00 | edleafe | efried: Oh, you're still pretending that we don't know how generations work | |
| 22:41:04 | efried | Correct. | |
| 22:41:08 | edleafe | The name itself should be a giveaway | |
| 22:41:21 | efried | say wha? | |
| 22:41:33 | efried | Please tell me you're joking | |
| 22:41:40 | edleafe | no, I'm not | |
| 22:42:14 | efried | We're not going to assume API behavior based on the dictionary definition of an ambiguous English word with lots of synonyms. | |
| 22:42:35 | efried | even if any one of those definitions said "and we start at 0, and the next one is +1" - which they don't. | |
| 22:43:19 | edleafe | We adopted generations over other candidates, such as etags, precisely because we *could* make these assumptions | |
| 22:43:36 | edleafe | I understand that we have not documented that behavior well enough for outsiders | |
| 22:43:47 | efried | Or insiders, apparently. I think I qualify. | |
| 22:43:51 | edleafe | But within the placement dev team, it was clear | |
| 22:44:06 | edleafe | were you in the discussions about what to use? | |
| 22:44:32 | efried | Oh, by "outsiders" did you mean whoever wasn't in the design discussion? | |
| 22:44:40 | edleafe | yes | |
| 22:44:51 | efried | I thought you meant people who aren't developers of the placement API. | |
| 22:45:15 | edleafe | well, you have seemed to pick up on the way it works :_ | |
| 22:45:50 | efried | Yes, and I vociferously contend that we have not documented that behavior well enough. | |
| 22:46:04 | edleafe | and I will vociferously agree with that | |
| 22:46:14 | efried | In any case, based on last week's straw poll, I don't think there's consensus even among people who were in the room when it was designed. | |
| 22:46:32 | efried | ...as to whether the behavior should be an explicit, documented part of the API. | |
| 22:46:34 | edleafe | some of us weren't happy with the choice :( | |
| 22:46:38 | mriedem | you guys are talking about a decision made a couple of years ago right? | |
| 22:46:50 | mriedem | in a kind of 'shit or get off the pot' situation? | |
| 22:46:54 | edleafe | mriedem: well, about a year or so I think | |
| 22:47:04 | mriedem | not knowing what we'd be doing with these things several releases later | |
| 22:47:19 | efried | mriedem: We're not even arguing the decision to implement generation a certain way. I don't think anyone has a problem with that. | |
| 22:47:26 | edleafe | there was the opaque marker (etag) proponents, and the deterministic marker (generation) camp | |
| 22:47:28 | mriedem | a year would have been the ATL PTG and it seems older than that, at least BCN | |
| 22:48:07 | mriedem | so next step is....documenting how generations work | |
| 22:48:08 | mriedem | ? | |
| 22:48:29 | efried | mriedem: Yeah - what's at issue is whether that implementation is supposed to be known by consumers of the API, or whether it's supposed to be opaque. | |
| 22:49:13 | mriedem | sorry, i haven't followed this debate the last several times it's come up, but what's the issue? that a client can get a generation that skips increments? | |
| 22:49:21 | mriedem | like t1 i get gen 1, t2 i get gen 3? | |
| 22:50:22 | efried | Not really. The issue is, can the consumer count on a) generation starts at 0 when you create a new provider; and b) generation increments by 1 when you successfully update something associated with a provider. | |
| 22:51:06 | efried | Point being, as currently implemented, yes they can, but do we want that to be explicitly part of the API, or do we want it to be opaque and you shouldn't introspect the generation? | |
| 22:52:14 | edleafe | mriedem: IOW, do we want to require that each call to modify a RP is first preceded by a GET to find the current generation? | |
| 22:52:24 | efried | no, not at all. | |
| 22:52:34 | efried | that would not be necessary at all. | |
| 22:52:59 | mriedem | if the generation the caller passes is in conflict, they get a 409, get the latest generation, merge the request and try again | |
| 22:53:17 | mriedem | why would the caller need to know that the generation increments by 1? | |
| 22:53:29 | edleafe | efried: how can they pass a generation if they can't assume previous+1? | |
| 22:54:01 | mriedem | efried: fwiw i think "can the consumer count on a) generation starts at 0 when you create a new provider; and b) generation increments by 1 when you successfully update something associated with a provider." is fine | |
| 22:54:04 | efried | edleafe: Because the response from any update includes the new generation. Since the update was atomic, you know that the payload in the response corresponds to that generation. | |
| 22:54:41 | efried | And I can keep my cache consistent with that information. | |
| 22:55:38 | efried | And the problem arises any time there's an update from whose response I can't glean the new generation. Like DELETE inventory, allocations, traits (and someday maybe aggregates) | |
| 22:56:08 | efried | mriedem: Duly noted. I think your vote splits us clean down the middle. | |
| 22:56:59 | mriedem | consider it a very limp vote | |
| 22:57:09 | efried | If I'm remembering right, we have mriedem cdent edleafe on one side, and efried dansmith jaypipes on the other. | |
| 22:57:44 | mriedem | well, i also agree that "you shouldn't introspect the generation" | |
| 22:57:48 | edleafe | and IIRC, it was jaypipes advocating for the gen+1 back in the day | |
| 22:58:03 | mriedem | like i said above, as a client, try the request, if it fails, fetch the latest thing, merge the result client side and try again | |
| 22:58:16 | edleafe | for the very reason that you *could* assume those things | |
| 22:58:28 | efried | edleafe: Not to put words in his mouth, but he may have been advocating the monotonic integer implementation without advocating that that implementation be transparent to the API consumer. | |
| 22:58:54 | edleafe | efried: that would have no advantage over something like etag | |
| 22:59:01 | mriedem | i sure hope this is blocking the most important thing that anyone is ever going to be working on...because it sures feels like it | |
| 22:59:09 | edleafe | it was that advantage that was the main argument | |
| 23:00:15 | edleafe | mriedem: it's just that we went through this a while ago, and now it's being dragged up again for the very reason it was chosen in the first place | |
| 23:01:55 | mriedem | fair | |
| 23:01:57 | mriedem | but, | |
| 23:02:02 | mriedem | it's 5:02 and i'm out of here suckas | |
| 23:02:08 | efried | later mriedem | |
| 23:02:15 | openstackgerrit | Merged openstack/nova master: Cleanup redundant want_version assignment. https://review.openstack.org/535801 | |
| 23:02:25 | openstackgerrit | Merged openstack/nova master: Add debug output for selected page size https://review.openstack.org/530662 | |
| 23:02:36 | openstackgerrit | Merged openstack/nova master: api-ref: Fix parameter type in server-migrations.inc https://review.openstack.org/536293 | |
| 23:03:04 | efried | edleafe, if the decision was made definitively after lots of discussion, how is it that there's such contention now, even among folks who were apparently part of the decision? | |
| 23:03:54 | efried | I would have expected those people to grumble about how it wasn't what they would have chosen, but it's what we decided on, and we'd have a path forward. | |
| 23:05:15 | edleafe | efried: that's hard for me to understand. Both cdent and I were arguing for etags, and now we're both saying "well, we got monotonically increasing integers, so let's use 'em!" | |
| 23:05:43 | efried | And the folks who argued for monotonic ints are saying they should be opaque? | |
| 23:06:02 | edleafe | weird, huh? | |
| 23:06:11 | efried | fkinaye | |
| 23:06:39 | openstackgerrit | Merged openstack/nova master: Merge server create schema for availability zone extension https://review.openstack.org/451331 | |
| 23:06:49 | openstackgerrit | Merged openstack/nova master: Merge server create for availability zone extension https://review.openstack.org/502574 | |
| 23:07:02 | openstackgerrit | Merged openstack/nova master: [placement] Add functional tests for resource class API https://review.openstack.org/524506 | |
| #openstack-nova - 2018-01-31 | |||
| 00:29:36 | openstackgerrit | Merged openstack/nova master: [placement] Add sending global request ID in delete (3) https://review.openstack.org/526557 | |
| 00:29:56 | openstackgerrit | Merged openstack/nova master: Avoid suspending guest with attached vGPUs https://review.openstack.org/535693 | |
| 00:32:28 | openstackgerrit | Takashi NATSUME proposed openstack/nova master: Transform live_migration_post_dest notification https://review.openstack.org/469784 | |
| 00:36:51 | openstackgerrit | Merged openstack/nova master: Handle TZ change in iso8601 >=0.1.12 https://review.openstack.org/535700 | |
| 00:44:27 | openstackgerrit | Takashi NATSUME proposed openstack/nova master: [placement] Separate API schemas (resource_provider) https://review.openstack.org/528629 | |
| 00:45:46 | openstackgerrit | Takashi NATSUME proposed openstack/nova master: Remove unnecessary arguments in notification methods https://review.openstack.org/535599 | |
| 01:03:28 | openstackgerrit | Nakanishi Tomotaka proposed openstack/nova master: Use Placement API to check resource usage https://review.openstack.org/528953 | |
| 01:13:05 | openstackgerrit | Zhenyu Zheng proposed openstack/nova master: Invalid query parameter could lead to HTTP 500 https://review.openstack.org/539164 | |
| 01:35:49 | mriedem_afk | woot vgpu patch finally merged https://review.openstack.org/#/c/535693/ | |
| 01:37:22 | mriedem_afk | alex_xu: want to hit this release note for versioned notification transformation for queens? https://review.openstack.org/#/c/518018/ | |
| 01:42:45 | Spazmotic | how are you awake even more than me | |
| 01:43:03 | mriedem | it's 7:45 | |
| 01:43:12 | Spazmotic | ..so it is | |
| 01:43:21 | Spazmotic | sorry.. third shift.. sometimes my hours don't make sense | |
| 01:43:25 | mriedem | exercise, vegetables and clean living | |
| 01:44:26 | Spazmotic | That's my lifestyle as well the past year.. I respect it:) | |
| 01:45:20 | Spazmotic | Nowadays I use my Racker picture on my badge as inspiration.. have lost 170lbs. But still.. Third Shift hours and having a fiancee in Korea make my hours ridiculous hehe | |