[13:01] <danilo> gary_poster, hey-hey, welcome :)
[13:03] <gary_poster> hey danilo :-)
[13:03] <danilo> gary_poster, people want to remove our BSFs we just added, and I've been fighting for them to stay :)
[13:03] <gary_poster> danilo, I was just reading your replies
[13:05] <gary_poster> ok cool, danilo.  I guess we need to drop everything and look at this.  I'll be ready after the "delivery" meeting, if that works for you--have you had lunch yet?
[13:05] <danilo> gary_poster, nope, not yet
[13:06] <gary_poster> heh ok
[13:06] <danilo> gary_poster, should I? :)
[13:06] <danilo> "it's going to be a loooong call" :)
[13:06] <gary_poster> heh.  well, this is a bit of a short lunch for you.
[13:06] <gary_poster> you think you can give me something to do while you have lunch after the call?
[13:07] <danilo> yeah, you can probably check if removing LEFT JOIN (and doing a regular JOIN, since we have BSFs for every SS now) will help with the query at all
[13:08] <gary_poster> ok cool
[13:08] <gary_poster> that will probably take all of 10 min, yeah? :-)
[13:08] <danilo> gary_poster, you could also try just hand-crafting equivalent query without subselects and seeing how it performs (especially since staging now has all the BSFs production does)
[13:08] <danilo> gary_poster, yeah, probably :)
[13:08] <gary_poster> heh ok
[13:10] <gary_poster> I actually don't have a strong opinion about not removing the BSFs temporarily.  It seems like it would be easy to remove them (the ones that are empty) and easy to add them back.  Is it more annoying than I think?
[13:10] <danilo> gary_poster, the other one is probably going to take a bit longer and will still end up being a long query with many ORs, but at least it will not be repeated inside the single select
[13:10] <gary_poster> We also could rethink the plan of "vanilla structural subscriptions must have an empty BSF"
[13:11] <gary_poster> But that's a stop-gap, or something like it
[13:11] <danilo> gary_poster, yeah, that's only help in the short-term, if we actually want people to use filters :)
[13:11] <danilo> gary_poster, that's why I am holding out on landing my linking-table branch, because if we rethink that, maybe we'll need a StructuralSubscription reference in there
[13:12] <danilo> gary_poster, so yes, I see it as an option as well
[13:12] <gary_poster> I see
[13:12] <gary_poster> short term: right.  I'm not clear on how bad the short term is.
[13:12] <gary_poster> 5000 timeouts in the past week on this seems like a lot
[13:12] <danilo> yeah, it does
[13:13] <danilo> but that code will need fixing anyway, im(ns)ho
[13:13] <gary_poster> sure
[13:13] <gary_poster> this gives us time while letting people not have the timeout problem
[13:13] <gary_poster> which doesn't seem all bad
[13:13] <danilo> yep, agreed, so let's just do it
[13:14] <danilo> gary_poster, the only thing we need to be careful about is not to remove any non-empty BSFs :)
[13:16] <gary_poster> yeah
[13:16] <gary_poster> I was thinking that the SQL ought not not be too bad for that, but that's coming from someone with rusty SQL
[13:17] <gary_poster> danilo, are you willing to update the bug with our plan?
[13:17] <gary_poster> 1) figure out some SQL to revert the empty BSFs
[13:17] <gary_poster> 2) see how much better we can make the SQL with empty BSFs
[13:18] <gary_poster> 3) consider allowing empty BSFs
[13:18] <gary_poster> I mean removing
[13:18] <gary_poster> that really does still seem wonky :-/
[13:18] <gary_poster> but the rule would not be too bad I guess
[13:21] <gary_poster> danilo, since I don't hear from you, I'll do it.  Stop me if you've started :-)
[13:25] <danilo> gary_poster, I didn't, sorry
[13:25] <gary_poster> np
[13:26] <danilo> gary_poster, want me to figure out the SQL (before the call)?
[13:26] <gary_poster> danilo, +1 thanks
[13:35] <danilo> gary_poster, SQL up at https://pastebin.canonical.com/43954/, is it time for the call? :)
[13:35] <gary_poster> bac, benji, danilo, sorry, was trying to handle the bug and missed our call time.  mumble/kanban now-ish
[13:35] <danilo> heh, good timing, thanks :)
[13:35] <bac> ok
[13:36] <gary_poster> :-)
[14:49] <gary_poster> bac, do you have some time for another call?  I want to give you the high-bandwidth version of my talk with Francis, then I'll broadcast the team with it in a mail
[14:50] <bac> yes
[15:12] <danilo> gary_poster, hi, I am ready whenever you are done with bac :)
[15:47] <danilo> gary_poster, SQL done on production
[16:03] <gary_poster> thank you danilo
[16:04] <danilo> gary_poster, oh, btw, we haven't decided if I go and land my branch for the linking table between BugNotification and BugSubscriptionFilters?
[16:05] <gary_poster> danilo, because the downside is that we are not sure anymore if we want BSFs for everyone, right?
[16:06] <danilo> gary_poster, right, so we might need StructuralSubscription in the table as well (to be able to properly link to "generic" StructuralSubscriptions... or, maybe we can figure those out relatively painlessly as well?)
[16:06] <danilo> gary_poster, there's probably no harm done in landing this, and if needed, we can introduce StructuralSubscription in there later, how does that sound?
[16:06] <gary_poster> danilo +1 I was working myself there :-)
[16:07] <danilo> gary_poster, heh, ok, that's what I'll do
[16:34] <gary_poster> bac, fwiw, dav glass has agreed to continue his support contract, so canonical-javascripters@... [yui-support] is a great option
[16:34] <bac> gary_poster: ok
[16:55] <gary_poster> danilo, wow; that SQL is *really* redundant.  I have something I'm going to try.  staging is the right db, yeah?
[16:55] <danilo> gary_poster, yep
[16:55] <gary_poster> ok one sec
[17:06] <gary_poster> danilo, I think lines 1-29 are equivalent: http://pastebin.ubuntu.com/572256/
[17:06] <gary_poster> Getting output to compare now
[17:06] <gary_poster> this runs in about 160 ms
[17:07] <gary_poster> so roughly factor of 10
[17:07] <gary_poster> when I say "I suspect logic of BugSubscriptionFilterTag is wrong" I mean in the original and this one--both.  Not something I introduced
[17:08] <danilo> gary_poster, yeah, looks about right except that it'd have to be distribution=1 _OR_ distroseries=6 (that's how SSs work, with their constraint on only one being defined)
[17:10] <gary_poster> danilo something like http://pastebin.ubuntu.com/572257/
[17:11] <danilo> gary_poster, yep
[17:11] <gary_poster> k, comparing
[17:13] <danilo> gary_poster, btw, the tags clause is likely to be correct as well (since the builder only adds clauses that would potentially match the bug, maybe it has no tags or something [whatever would make sense for them not to be added])
[17:15] <gary_poster> danilo, results are identical (modulo ordering, which is not sorted so to be expected)
[17:15] <gary_poster> the original took 1230.808 ms
[17:16] <gary_poster> so danilo, now what do I do :-P
[17:16] <gary_poster> should we have another call so I can be edumacated?
[17:19] <danilo> gary_poster, oh, now you just fix it all :)
[17:19] <danilo> gary_poster, a call is fine :)
[17:19] <gary_poster> :-) ok thanks
[17:27] <benji> I somehow induced a conflict in shipit and naively nuked the directory and ran rocketfuel-get to get it back; it's taking forever (but making progress).
[17:27] <benji> I guess I'll take lunch and hope it gets done soon.
[18:07] <danilo> gary_poster, fwiw, the test in lib/lp/translations/tests/test_translationtemplatescollection.py can give you an idea how to start testing this stuff, though set-up is going to be wildly different :)
[18:17] <danilo> enjoy the weekend all, bye
[20:25] <bac> gary_poster: I have talked to sidnei, posted to canonical-javascripters, and posted to the gallery-accordion forum.  hopefully i'll get some hints.
[20:56] <gary_poster> bac, cool.  I hope we get some bites.  Sidnei did not have anything immediately helpful, I take it?
[20:56] <gary_poster> Ah, I see the report ("could not get their suggestions to work") in the email
[20:57] <bac> gary_poster: not really.  he suggested i investigate the 'contentUpdate' event but it seems to be firing appropriately and adding redundant fires had no effect
[20:58] <gary_poster> ok
[20:58] <gary_poster> too bad