| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-12-14 | |||
| 16:22:04 | jaypipes | dansmith: there's almost no difference between a TEXT, MEDIUMTEXT or VARCHAR(8000) w.r.t. on-disk storage requirements or layout. | |
| 16:22:11 | jaypipes | dansmith: for InnoDB that is. | |
| 16:22:12 | bauzas | dansmith: FWIW, I fixed the problem way in the past for hosts https://github.com/openstack/nova/commit/c48c1098cbcd7a9c7980d5fbe4668c38b16767f5 | |
| 16:22:31 | dansmith | jaypipes: okay | |
| 16:22:44 | bauzas | dansmith: but I didn't thought it would be a huge problem for members, given not a lot of operators use a long list of them | |
| 16:23:04 | jaypipes | dansmith: no, for all those field types, InnoDB stores a small amount of data in the data page itself and makes room (when needed) in separate extents by providing a pointer to that extent/page from the main data page. | |
| 16:23:43 | jaypipes | dansmith: the only thing that can be performance-wise a bad thing is if the size of those fields changes often (which isn't the case for these fields in Nova's DB) | |
| 16:23:44 | artom | So for MySQL/InnoDB a migration to mediumtext would actually make sense... | |
| 16:23:55 | jaypipes | artom: for InnoDB, yes. for NDB, no... | |
| 16:24:07 | jaypipes | artom: but that's a different problem entirely :) | |
| 16:24:24 | artom | Do we support NDB? | |
| 16:24:40 | jaypipes | artom: what is the current column type for this field you're talking about? | |
| 16:24:48 | bauzas | mriedem: jaypipes: https://review.openstack.org/#/c/527799/ looks legit to me | |
| 16:24:52 | dansmith | jaypipes: and what is the cost of resizing to medium from text? | |
| 16:25:01 | jaypipes | dansmith: virtually zero. | |
| 16:25:04 | artom | jaypipes, dansmith answered that for me | |
| 16:25:12 | dansmith | jaypipes: awesome, then we should do that too | |
| 16:25:19 | dansmith | artom, mriedem ^ | |
| 16:25:33 | dansmith | still need the real fix, but sounds like a backport is too good to pass up | |
| 16:25:36 | dansmith | of the migration I mean | |
| 16:25:37 | artom | dansmith, that assumes we only support InnoDB | |
| 16:25:38 | jaypipes | dansmith: I don't recommend mediumtext anyway. just set it to TEXT | |
| 16:25:46 | dansmith | jaypipes: text isn't big enough | |
| 16:25:46 | artom | Which... is it the case? | |
| 16:26:02 | artom | Surely some people are running Galera | |
| 16:26:05 | dansmith | artom: I think everyone would be running innodb in prod, AFAIK | |
| 16:26:07 | jaypipes | dansmith: TEXT > MEDIUMTEXT | |
| 16:26:21 | dansmith | jaypipes: um I don't think so | |
| 16:26:33 | jaypipes | sorry, yeah... | |
| 16:26:48 | dansmith | https://stackoverflow.com/questions/13932750/tinytext-text-mediumtext-and-longtext-maximum-storage-sizes | |
| 16:26:53 | jaypipes | was thinking LONGTEXT | |
| 16:27:00 | bauzas | yeah LONGTEXT no ? | |
| 16:27:05 | artom | Oh, Galera uses InnoDB | |
| 16:27:08 | bauzas | TEXT to LONGTEXT I mean | |
| 16:28:07 | jaypipes | dansmith, artom: what is the specific field we are talking about here? | |
| 16:28:10 | mriedem | dansmith: jaypipes: cool - thanks | |
| 16:28:13 | jaypipes | dansmith: is this metadata value? | |
| 16:28:24 | dansmith | jaypipes: request_specs.spec | |
| 16:28:29 | jaypipes | hmm. | |
| 16:28:40 | dansmith | jaypipes: it's a text we serialize the object into, and because we store instance_group.members, which can be huge, | |
| 16:28:41 | artom | Err, instance_group surely? | |
| 16:28:46 | dansmith | we can generate more than 64kb of data | |
| 16:28:59 | dansmith | artom: instance_group is in the spec | |
| 16:29:07 | bauzas | we serialize all at a whole | |
| 16:29:11 | artom | Ah, doh | |
| 16:29:15 | jaypipes | dansmith: k. then I'd recommend changing it to MEDIUMTEXT from TEXT. | |
| 16:29:23 | dansmith | jaypipes: that's what we're doing :) | |
| 16:29:34 | jaypipes | dansmith: ok, sorry for interrupting then :) | |
| 16:29:35 | dansmith | jaypipes: waaaaayyyy ahead of you bro | |
| 16:29:49 | dansmith | jaypipes: and when I say "we" I mean "artom" | |
| 16:29:52 | jaypipes | k | |
| 16:30:22 | artom | I, wha? | |
| 16:30:32 | jaypipes | yet another reason why storing denormalized data in a TEXT-y field is a bad idea... | |
| 16:30:39 | artom | I've barely had breakfast and it's 11:30, I'm not ahead of anything | |
| 16:30:47 | openstackgerrit | Merged openstack/nova master: Fix the bug report link of API Guide https://review.openstack.org/527660 | |
| 16:32:17 | dansmith | jaypipes: well, it has its place, IMHO, and the complexity required to store a reqspec normalized is not worth it since it's a snapshot | |
| 16:32:33 | bauzas | I remember we had a thought on that with alaski | |
| 16:33:18 | dansmith | reqspec is an archive snapshot really, which is fine for this, we just need to not snapshot an infinite amount of stale data into it ;) | |
| 16:33:35 | bauzas | and we said it was better to just store the whole object so we would totally decouple what we store from what we expose | |
| 16:33:48 | bauzas | dansmith: yeah, I still agree on it tbc | |
| 16:34:10 | jaypipes | dansmith: +W'd that patch | |
| 16:34:25 | bauzas | we just expose the instance UUID for querying reasons that's it | |
| 16:34:28 | dansmith | jaypipes: thanks | |
| 16:34:43 | bauzas | dansmith: is there another patch related to that about a DB schema modification ? | |
| 16:34:48 | dansmith | jaypipes: and thanks for being my fleshy mysql manual :P | |
| 16:34:59 | dansmith | bauzas: young artom will be presenting it forthwith | |
| 16:35:03 | bauzas | cool | |
| 16:35:10 | jaypipes | dansmith: sounds kinky. | |
| 16:35:19 | bauzas | oh man, I wish I could "OK jaypipes" on my phone | |
| 16:35:26 | jaypipes | lol | |
| 16:35:27 | artom | jaypipes, you got off easy, I'm his young turdgoat | |
| 16:35:35 | cdent | "fleshy mysql manual" is way too visual | |
| 16:35:40 | jaypipes | artom: yes, I read that. very flattering indeed. ;) | |
| 16:35:41 | dansmith | cdent: you're welcome | |
| 16:35:56 | cdent | clears my head nicely, thank you dansmith | |
| 16:37:42 | artom | dansmith, so I'll handle the backports - who's proposing the DB migration? | |
| 16:38:01 | dansmith | artom: you are | |
| 16:38:04 | artom | Or are we satisfied that the code alone is enough? | |
| 16:38:52 | dansmith | I mean, I can do the migration if you really don't want to, but.. figured you'd want all the glory and praise that will come with it | |
| 16:39:11 | artom | If I want glory and praise I'll become a murderous dictator | |
| 16:39:17 | mriedem | artom: there is a db migratoin for extending the size of build_requests.instance | |
| 16:39:20 | mriedem | artom: just copy ^ | |
| 16:39:21 | mriedem | super easy | |
| 16:39:26 | mriedem | exact same issue | |
| 16:39:34 | dansmith | artom: an important point on the resume of a murderous dictator is "did a schema migration once" | |
| 16:39:38 | artom | For now I just want to revel turdgoatery | |
| 16:39:42 | mriedem | ffs you should probably give me co-author now because i even told you | |
| 16:40:08 | artom | What's the magic word? | |
| 16:40:27 | mriedem | trump | |
| 16:41:52 | artom | Do we support pgsql as well? | |
| 16:42:05 | artom | I remember there was a whole thing about dropping it from the gate a while back | |
| 16:42:17 | bauzas | I'm a 20% time person this week, funny | |
| 16:43:02 | dansmith | artom: we don't anymore | |
| 16:43:16 | dansmith | artom: and if you could figure out some way to break pgsql in this process, I'd sure appreciate it | |
| 16:43:31 | dansmith | if for no other reason than just to cause pain for that smug cfriesen guy | |
| 16:44:01 | bauzas | artom: we are not gating pgsql, hence not supporting it | |
| 16:44:47 | bauzas | I don't know if other projects still gate pg, but we very made it clear that pg is not supported anyway in nova | |
| 16:57:08 | xnox | Hello! | |
| 16:57:24 | xnox | is there nova quota for CPU cores.... per-arch/per-machinetype? | |
| 16:58:48 | openstackgerrit | Stephen Finucane proposed openstack/nova master: doc: Document PCI NUMA affinity policy https://review.openstack.org/528011 | |