*** jamesmcarthur has joined #storyboard | 00:05 | |
*** jamesmcarthur has quit IRC | 00:10 | |
*** jamesmcarthur has joined #storyboard | 00:12 | |
*** jamesmcarthur has quit IRC | 00:16 | |
*** jamesmcarthur has joined #storyboard | 00:18 | |
*** jamesmcarthur has quit IRC | 00:21 | |
*** jamesmcarthur has joined #storyboard | 00:21 | |
*** jamesmcarthur has quit IRC | 02:11 | |
*** jamesmcarthur has joined #storyboard | 02:11 | |
*** jamesmcarthur has quit IRC | 02:16 | |
*** jamesmcarthur has joined #storyboard | 03:29 | |
*** jamesmcarthur has quit IRC | 03:32 | |
*** jamesmcarthur has joined #storyboard | 03:32 | |
*** jamesmcarthur has quit IRC | 04:08 | |
*** jamesmcarthur has joined #storyboard | 04:08 | |
*** jamesmcarthur has quit IRC | 04:09 | |
*** jamesmcarthur_ has joined #storyboard | 04:09 | |
*** jamesmcarthur_ has quit IRC | 04:11 | |
*** udesale has joined #storyboard | 04:57 | |
*** udesale has quit IRC | 07:26 | |
*** udesale has joined #storyboard | 07:31 | |
*** tosky has joined #storyboard | 08:02 | |
*** tosky has quit IRC | 08:16 | |
*** tosky has joined #storyboard | 08:33 | |
*** ianychoi has joined #storyboard | 14:05 | |
*** SotK has quit IRC | 14:55 | |
*** irclogbot_1 has quit IRC | 14:55 | |
*** SotK has joined #storyboard | 14:57 | |
*** irclogbot_1 has joined #storyboard | 14:57 | |
*** tsmith2 has quit IRC | 15:00 | |
*** tsmith2 has joined #storyboard | 15:06 | |
*** udesale_ has joined #storyboard | 15:32 | |
*** udesale has quit IRC | 15:34 | |
* SotK wonders if folks are around for (and want) a meeting later? | 16:14 | |
fungi | i am around | 16:22 |
---|---|---|
*** udesale_ has quit IRC | 16:25 | |
*** diablo_rojo has joined #storyboard | 17:50 | |
fungi | diablo_rojo? | 17:58 |
fungi | i guess you rejoined after SotK asked | 17:58 |
diablo_rojo | Lol sorry | 18:03 |
diablo_rojo | Yeah I can meet. | 18:03 |
diablo_rojo | I dont have anything new. | 18:03 |
SotK | lets have a quick-ish meeting then, its been a few weeks | 18:06 |
SotK | and I actually have looked into performance a bit | 18:06 |
SotK | #startmeeting storyboard | 18:06 |
openstack | Meeting started Thu Jul 16 18:06:47 2020 UTC and is due to finish in 60 minutes. The chair is SotK. Information about MeetBot at http://wiki.debian.org/MeetBot. | 18:06 |
openstack | Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. | 18:06 |
*** openstack changes topic to " (Meeting topic: storyboard)" | 18:06 | |
openstack | The meeting name has been set to 'storyboard' | 18:06 |
SotK | #link https://wiki.openstack.org/wiki/Meetings/StoryBoard Agenda-ish | 18:07 |
SotK | I don't think there's any announcements or migration updates, so lets go straight to in-progress | 18:07 |
SotK | #topic In Progress Work | 18:07 |
*** openstack changes topic to "In Progress Work (Meeting topic: storyboard)" | 18:07 | |
fungi | yes! eager to hear what performance insights you've gleaned | 18:08 |
diablo_rojo | As am I :) | 18:12 |
SotK | I didn't actually get round to generating a dataset comparable to the production db yet (my test data currently has 10000 stories, compared with the 28138 reported by storyboard.o.o) | 18:12 |
fungi | it's within the same order of magnitude | 18:13 |
SotK | indeed | 18:13 |
SotK | as memory serves the worst query we have (according to the old log) was the general story browsing one | 18:13 |
fungi | in aggregate, yes | 18:14 |
SotK | which is approximately this: http://paste.openstack.org/show/796021/ | 18:14 |
fungi | multiple joins in a nested query | 18:15 |
SotK | on my test data that takes ~100ms to execute | 18:16 |
diablo_rojo | Yeah that matches my recollections as well | 18:16 |
SotK | part of the problem is the ORDER BY, since story_summary is the massive subquery rather than an actual table, there's no useful index there | 18:17 |
fungi | oh, right | 18:18 |
SotK | moving that into the filtered_stories subquery maintains the ordering in the result, and gets the time down to ~80ms | 18:18 |
diablo_rojo | Step in the right direction. | 18:18 |
fungi | a 20% improvement is nothing to sneeze at, but may also not be a noticeable speedup on human timescales | 18:19 |
SotK | indeed, so I then moved the filtering that currently lives in filtered_stories into the story_summary subquery, removing the big join | 18:21 |
fungi | that seems like it should have far greater impact | 18:21 |
SotK | yeah, that got it down to ~14ms | 18:21 |
fungi | yowza | 18:21 |
fungi | i'm always dubious of subqueries anyway, and that's a great illustration of why | 18:22 |
diablo_rojo | Holy moly. | 18:22 |
SotK | so the hard part is going to be working out how best to get SQLAlchemy to emit that query using the ORM | 18:25 |
fungi | how/where in the code is it currently built? | 18:26 |
SotK | the `story_summary` subquery comes from https://opendev.org/opendev/storyboard/src/branch/master/storyboard/db/models.py#L465-L490 | 18:26 |
SotK | then the rest is https://opendev.org/opendev/storyboard/src/branch/master/storyboard/db/api/stories.py#L73-L134 | 18:27 |
SotK | the `_story_build_query` function called in that second link constructs the `filtered_stories` subquery | 18:28 |
fungi | so basically need to dereference what _story_build_query() is doing i guess | 18:31 |
fungi | mordred: ^ if you're around, can you suggest an orm-friendly alternative to how that's been designed? | 18:31 |
SotK | I think really we just need to stop using StorySummary entirely | 18:32 |
fungi | oh, right, we talked about that | 18:32 |
SotK | or at least come up with a way to filter it directly and efficiently rather than joining to a filtered set of IDs | 18:32 |
fungi | basically just replace it with a custom search, and then we can optimize the hell out of search instead | 18:33 |
SotK | yeah | 18:33 |
SotK | the main thing it provides is ability to aggregate the task statuses in the ORM directly | 18:34 |
fungi | which we already identified need to be done differently too | 18:34 |
fungi | because showing "active" stories for a project with no active tasks in those stories is counter-intuitive and probably not what the user wants anyway | 18:34 |
SotK | aha, I hadn't even considered that aspect | 18:35 |
SotK | yeah, we'll be able to do that much more easily in a rewritten way | 18:35 |
diablo_rojo | Seems like a good way to go to me. | 18:38 |
diablo_rojo | Heh yeah that makes a lot of sense | 18:38 |
SotK | I'll continue work in that direction then | 18:39 |
SotK | hopefully I should have a patch up for that before next week's meeting | 18:39 |
SotK | my first attempt didn't work even slightly as intended, but did a good job to testing out my laptop's fans | 18:39 |
diablo_rojo | Lol a nice little space heater? | 18:40 |
fungi | or white noise generator | 18:41 |
fungi | SotK: thanks for working on that! | 18:41 |
diablo_rojo | Yes thank you so much for all your hard work on that. | 18:42 |
fungi | i started looking back over what i might have done wrong with the swift acls in rackspace for storyboard-dev's attachments, but so far no real insights | 18:42 |
diablo_rojo | People will be ecstatic when we get that merged. | 18:42 |
SotK | yeah it should improve quality of life quite a lot hopefully | 18:42 |
fungi | i think it's plumbed correctly in the sb config because i'm getting a permission failure rather than something else like auth failure or connection error | 18:42 |
fungi | i think my next step is going to be trying to use client tools to write to the container | 18:43 |
SotK | it'd be nice to test it on storyboard-dev when I do get a patch up, to get an idea of the kind of improvement we get on a still bigger db | 18:43 |
SotK | fungi: that would be my recommendation, yeah | 18:43 |
fungi | and see if i can debug by repeating the same things sb is trying to do | 18:43 |
fungi | on query optimization, i wonder how we can identify what the slowdown is for rendering automatic boards/worklists | 18:45 |
fungi | while not as frequently called as the story summary pages, those are the most noticeably slow views | 18:45 |
SotK | agreed, I think that's what I'll investigate next | 18:46 |
diablo_rojo | Aside from search yeah | 18:46 |
fungi | but i'm not sure what queries are at fault, or if it's an only moderately slow query getting called an explosive number of times | 18:46 |
diablo_rojo | I could see that | 18:46 |
SotK | I suspect StorySummary is somewhat to blame there too | 18:47 |
fungi | oh, could that be getting called to get data for the cards? | 18:48 |
fungi | but also, more generally, as we optimize the more commonly called queries we free up resources so other queries don't have to compete for cpu/io | 18:49 |
diablo_rojo | That would be nice if it was two birds with one stone so to speak | 18:50 |
SotK | yeah, we use it in the filters because we want to support filtering by story status | 18:50 |
SotK | the code there is pretty questionable in general I think, there should be plenty of room for improvement | 18:51 |
SotK | (there is nothing worse than reading your own old code :D) | 18:51 |
diablo_rojo | LOL yep. | 18:52 |
diablo_rojo | Made sense at the time though I imagine | 18:52 |
SotK | haha, it always does | 18:52 |
fungi | i always think of it as hatemail my past self sent me | 18:53 |
SotK | #topic Open Discussion | 18:56 |
*** openstack changes topic to "Open Discussion (Meeting topic: storyboard)" | 18:56 | |
SotK | anything else? | 18:56 |
fungi | not on my end | 18:56 |
diablo_rojo | Nothing from me either. | 18:56 |
diablo_rojo | ..aside from apologizing for not being all that helpful lately. | 18:57 |
SotK | no need to apologise :) | 18:58 |
SotK | anyway, time for me to make dinner, thank you for the meeting! | 18:58 |
fungi | thanks SotK! | 18:59 |
SotK | #endmeeting | 18:59 |
*** openstack changes topic to "StoryBoard - A task tracker for OpenStack development needs :: http://storyboard.openstack.org/ :: https://wiki.openstack.org/wiki/StoryBoard" | 18:59 | |
diablo_rojo | Have a good rest of your day! | 18:59 |
openstack | Meeting ended Thu Jul 16 18:59:11 2020 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4) | 18:59 |
openstack | Minutes: http://eavesdrop.openstack.org/meetings/storyboard/2020/storyboard.2020-07-16-18.06.html | 18:59 |
openstack | Minutes (text): http://eavesdrop.openstack.org/meetings/storyboard/2020/storyboard.2020-07-16-18.06.txt | 18:59 |
openstack | Log: http://eavesdrop.openstack.org/meetings/storyboard/2020/storyboard.2020-07-16-18.06.log.html | 18:59 |
diablo_rojo | Thank you SotK! | 18:59 |
*** diablo_rojo has quit IRC | 19:31 | |
*** tosky has quit IRC | 23:04 | |
*** SotK has quit IRC | 23:16 | |
*** irclogbot_1 has quit IRC | 23:16 | |
*** SotK has joined #storyboard | 23:22 | |
*** irclogbot_1 has joined #storyboard | 23:22 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!