/srv/irclogs.ubuntu.com/2014/06/11/#launchpad-dev.txt

wgrantcjwatson: How's the performance looking?01:08
cjwatsonwgrant: About a minute for each run03:03
wgrantcjwatson: Nice.03:03
cjwatsonDown from three and a bit03:04
cjwatsonLooks like reasonably consistently 53s or nearby03:05
cjwatsonwgrant: Is there any way to sensibly preload things that are modelled using SQLMultipleJoin(..., orderBy=)?  Storm doesn't seem to cache that in a way that can be satisfied by a previous load_referencing, not even if I expand out load_referencing's query to include a matching ORDER BY.03:32
wgrantcjwatson: No, Storm only caches by PK03:34
wgrantYou'll need to turn the SQLMultipleJoin into a cachedproperty03:35
cjwatsonAha03:35
wgrantDepending on the callsites, that can be very easy or very hard.03:35
wgrantWhich one is this?03:35
cjwatsonSPR.files03:35
wgrantAh, most things should be happy with that being a list.03:35
wgrantWhat are you trying to accelerate?03:35
cjwatsonI got pissed off with PPA publisher performance and thought I'd try the obvious preloads03:35
wgrantAh, yeah03:36
wgrantOK, this is really confusing. I'm watching a UOS session where you're talking, while talking to you about something totally different on IRC.03:37
cjwatsonEverything else from source publication is easy to make constant query count by number of source packages.  Haven't tried binaries yet03:37
cjwatsonHeh03:37
wgrantIt's not a huge amount of work now that model cachedproperties aren't verboten.03:38
wgranteg. SPR.files probably only needs invalidation in SPR.addFile03:38
wgrantBut gina needs checking.03:38
cjwatsonRight, I assume I just grep for SourcePackageReleaseFile as the starting point03:39
wgrantYep.03:40
cjwatsonYay, that makes my record_two_runs test for source publishing pass.  Thanks.03:59
cjwatsonI'll try the same for binaries in the morning.03:59
=== timrc is now known as timrc-afk
cjwatsonOr maybe I'll have insomnia and JFDI.  Should actually try sleeping while more of the tests run though ...04:35
wgrantcjwatson: Did you go to bed? :)05:54
=== alexlist` is now known as alexlist
cjwatsonwgrant: For a bit, yeah08:08
wgrantDisappointing.08:09
cjwatsonWell, I'd written the binaries code before saying that above08:10
cjwatsonShould have that up for you to look at a bit later today08:10
cjwatsonAny luck with livefs*?08:11
wgrantSpent most of the day on log analysis and scalingstack stuff, but I'll hopefully have that sorted out tomorrow in the unlikely event that nothing else comes up :/08:16
wgrantcjwatson: How many queries were actually executed per pub?09:29
wgrantI guess one for the xPR, one for the xPR?Fs, then one for each LFA and one for each LFC.09:30
wgrantPlus the xPN09:30
wgrantAnd sometimes the component and section.09:30
wgrantAnd maybe one for the BPB, its SPPH, its SPR, its SPN and its component in the case of binaries?09:31
wgrantThough that might be done by postgres the view, I can't quite recall.09:31
cjwatsonI think it was about five or six per pub09:31
wgrantin the view09:31
wgrantUgh, some of that lint is mine.09:32
cjwatsonSeven per source and six per binary if I'm reading my terminal scrollback correctly09:32
cjwatsonSPR, SPN, SPRF, number of files * (LFA, LFC)09:33
cjwatsonBPR, BPB, BPF, LFA, LFC, (maybe SPN), BPN09:33
cjwatsonAlso sometimes Section.  Component is effectively constant09:34
wgrantI was wondering how SPRs had more. Of course, multiple files.09:34
cjwatsonTwo in my test but of course often more.09:34
wgrantHm09:34
wgrantWe need to check the Storm cache config.09:34
wgrantI think it's capped at 10000 objects09:35
wgrantIt is for the09:35
wgrantwebapp, at least, I think09:35
wgrantI might have uncapped it for scripts a few years ago/09:35
cjwatsonHow many packages are there in the largest PPA?09:35
wgrantA few thousand09:35
wgrant3000ish IIRC09:35
wgrantWe probably want to do this in reasonably sized chunks, but your diff is better than what we have now, so meh.09:36
cjwatsonI guess if we were to chunk it the preloading would have to move into archivepublisher09:37
wgrantAs it bloody well should.09:37
wgrantNone of that ridiculous publishing code belongs in registry :)09:37
wgrantOr even soyuz.09:37
wgrantOh yes let's have the webapp publication objects know how to serialise themselves to disk, that's a good idea.09:37
cjwatsonWell, I mean into the caller rather than the callee09:37
cjwatsonThose get*PackagePublishing methods only have one call site each09:38
wgrantYeah09:38
cjwatson(going out for a bit before UOS)09:38
wgrantI've been meaning to investigate chunking DecoratedResultSet.__iter__ for a while.09:41
wgrantIt already does a bit of evil, so it wouldn't be too bad.09:41
wgrantHave it iterate through chunks of a caller-specified size, so it does 10 bulk queries each over 1000 objects rather than one over 100000.09:42
wgrantIgnore the missing order of magnitude there.09:44
wgrantInline comments are nice.09:57
stubwgrant: it is capped, but you can override it in the launchpad.conf per script10:24
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== jelmer_ is now known as jelmer
=== BradCrittenden is now known as bac
wgrantcjwatson: How'd the source caching test go, modulo ENOSPC?12:05
cjwatsonwgrant: Looked fine, was about four minutes quicker13:31
cjwatsonResults looked correct13:32
cjwatsonI've asked mvo to do a sourceful trusty backport so that we can then build that lot on precise13:32
wgrant:)13:38
cjwatson15:53 <cjwatson>  dists.in-progress/utopic/main/source/: 6392 pkgs in 35s13:43
cjwatson15:53 <cjwatson>  dists.in-progress/utopic/restricted/source/: 24 pkgs in 0s13:43
cjwatson15:53 <cjwatson>  dists.in-progress/utopic/universe/source/: 39628 pkgs in 3min 37s13:43
cjwatson15:53 <cjwatson>  dists.in-progress/utopic/multiverse/source/: 1102 pkgs in 8s13:43
cjwatson15:53 <cjwatson> then second run:13:43
cjwatson15:53 <cjwatson>  dists.in-progress/utopic/main/source/: 6392 pkgs in 0s13:43
cjwatson15:53 <cjwatson>  dists.in-progress/utopic/restricted/source/: 24 pkgs in 0s13:43
cjwatson15:53 <cjwatson>  dists.in-progress/utopic/universe/source/: 39628 pkgs in 6s13:43
cjwatson(both with the new apt-ftparchive, but the first with no sources cache)13:44
cjwatson15:53 <cjwatson>  dists.in-progress/utopic/multiverse/source/: 1102 pkgs in 0s13:44
cjwatsonSo does exactly what it says on the tin, I think.13:44
cjwatsonI wonder where I should put ubuntu-archive-publishing config, re https://code.launchpad.net/~cjwatson/launchpad/configurable-germinate-base/+merge/194340 .  Maybe I should just have a file where we look things up by os.environ["LPCONFIG"]13:46
wgrantcjwatson: That or a config file named by LPCONFIG sounds reasonable.13:49
=== olli_ is now known as olli
=== mbarnett` is now known as mbarnett
cjwatsonwgrant: https://code.launchpad.net/~cjwatson/launchpad/preload-publisher-indexes/+merge/222768 should be ready for re-review now.15:43
wgrantcjwatson: Thanks.15:50
wgrantcjwatson: We'll want to test variously sized archives on DF to check for any weird postgres decisions on the huge queries, but that's nice and easy with NMAF (no pool required).15:51
cjwatsonno pool required?15:51
wgrantTesting a-f at scale can only be done on pepo, as it depends on the pool being intact.15:52
cjwatsonoh, right, you mean we can let NMAF put the pool in place15:52
wgrantNo, we don't need a pool.15:52
cjwatsonI'm obviously not awake.  I understand now.15:52
wgrantWell considering you were off IRC for two hours.15:52
cjwatsonAndreas had a didn't-want-to-sleep night.15:53
wgrant:(15:53
cjwatsonAlso, <3 caffeine15:53
wgrantHeh15:53
cjwatsonOK, that a-f smoke-test on DF would have been more effective if I'd changed something.15:54
wgrantClean suites are quick to publish, at least.15:54
cjwatsonOh, it did change.  Good.15:54
cjwatsonJust looking at the wrong publish-distro run.15:54
wgrantAh15:54
cjwatsonAnd see your previous comments about needing a pool.  Well, didn't explode.15:55
wgrantIt won't explode.15:55
wgrantBut the indices'll be pretty empty.15:56
cjwatsonYeah, just memtest86+ in main.  Shrug.15:56
cjwatson=== modified file 'finalize.d/20-germinate' (properties changed: +x to -x)15:57
cjwatsonthanks, bzr15:57
cjwatsonAnyway, we can deploy once lpqateam catches up.  Shall I request that?15:58
wgrantSounds like a good plan.15:58
wgrantHave you done one lately?15:59
wgrantwebops will ask for an RT15:59
wgrantBut otherwise as usual.15:59
cjwatsonNot lately, but I'd seen you switching to RTing things.15:59
cjwatsonEh, what the heck did generate-extra-overrides just do on labbu16:00
cjwatsonOh, maybe it's talking to production for its series information16:01
wgrantAh, heh, probably.16:01
cjwatsonWonder what to do about that.  I could just cowboy -l dogfood in cron.germinate on labbu for now ...16:02
cjwatsonwgrant: bug 1328355 was applied live?16:08
_mup_Bug #1328355: Distribution.guessPublishedSourcePackageName times out frequently <easy> <qa-ok> <timeout> <Launchpad itself:Fix Released by wgrant> <https://launchpad.net/bugs/1328355>16:08
wgrantcjwatson: It was.16:08
cjwatsonGrr, api.dogfood.launchpad.net16:12
cjwatsonI guess we should SRU python-launchpadlib16:12
wgrantI need to move the stagings at some point as well.16:13
wgrantLuckily -l https://api.dogfood.launchpad.net/ works16:13
wgranter.16:13
wgrant-l https://api.dogfood.paddev.net/16:13
cjwatsonYeah, I was just thinking and checking that16:14
cjwatsonOK, cowboyed to death now.  Getting rid of lp-query-distro will kill one of the cowboys.16:19
wgrant:)16:20
cjwatsonI'll probably shove the endpoint URI into the config infrastructure I'm writing for bug 1248869.16:20
_mup_Bug #1248869: Stop the publisher from talking to people.canonical.com <soyuz-publish> <ubuntu-archive-publishing:In Progress by cjwatson> <https://launchpad.net/bugs/1248869>16:20
wgrantYup, makes sense.16:20
wgrantYou have the ndt etc. under control?16:20
wgrantI might wander off.16:20
cjwatsonYeah, go ahead.16:20
wgrantThanks.16:20
=== Ursinha is now known as Ursinha-afk
cjwatsonwgrant: I self-reviewed a testfix to preload-publisher-indexes to unblock buildbot.  Hopefully it looks right to you.18:42
=== Ursinha-afk is now known as Ursinha
=== jml- is now known as jml
lifelessstub: is there a way in pytz to get a tzinfo object given a utc offset?21:18
wgrantcjwatson: Looks good, thanks.23:10
cjwatsonI'm trying some test runs with it now.23:12
cjwatson"/srv/launchpad.net/codelines/current/scripts/publish-distro.py -vv -d ubuntu --ppa --ms -A", hacked to publish only a single PPA, taking time between "Step C'" and "Step D", second run to ensure hot cache23:12
cjwatsoncjwatson/ppa, canonical-kernel-team/ppa, launchpad/ppa, kubuntu-ninjas/ppa23:12
cjwatsonAny other suggestions?23:13
wgrantThose are pretty good options.23:13
cjwatson-A publishes all series, but the more the merrier.23:13
cjwatson(Actually I'm currently getting control data from r17041.)23:14
cjwatsoncjwatson/ppa                    (2.835) 1.260           (1.412) 1.37523:33
cjwatsoncanonical-kernel-team/ppa       (33.896) 23.570         (9.972) 10.15223:33
cjwatsonlaunchpad/ppa                   (9.644) 3.739           (3.332) 3.36723:33
cjwatsonkubuntu-ninjas/ppa              (69.837) 43.198         (19.578) 20.03123:33
cjwatsonwgrant: ^- owner-name/ppa-name (r17041 first run) r17041 second run (r17043 first run) r17043 second run23:33
cjwatsonarchives compare functionally identical (aside from compression timestamps and suchlike)23:34
cjwatsonlooks pretty good to me23:34
wgrantcjwatson: Still very slow, but quite an improvement. Is that just index generation time?23:38
cjwatsonI suspect the remaining time would bear some profiling, since it certainly shouldn't be maxing out on I/O there, but still23:38
wgrantie. C' -> D time?23:38
cjwatsonRight, just step C'23:38
cjwatsonMaybe lacking indexes for some of the rest?23:39
wgrantAll the queries you touched yesterday have sensible indices, but yeah, it's probably worth investigating now23:39
wgrantI'll have a poke when you're done with labbu.23:39
cjwatsonI think I'm done now; that much is enough for me to say qa-ok I think23:40
wgrantAgreed.23:40
* wgrant investigates.23:42
cjwatsonReleased my vim lock on lib/lp/soyuz/scripts/publishdistro.py which remains cowboyed23:43
cjwatsonFeel free to mangle/revert23:43
wgrantThanks.23:43
wgrant335 queries23:44
wgrantHm23:45
wgrantI might hack it to only do one suite.23:45
wgrantUnless you have logs from the original run?23:46
wgrantkubuntu-ninjas trusty binary-amd64 took 2.2s in my latest test run.23:47
wgrantcjwatson: Did you keep your logs?23:47
wgrant6.1s with the old code.23:49
cjwatsoner, not in a file but I think I have scrollback23:50
cjwatsonBah, not enough of it, sorry.23:50
wgrantNevermind, quick enough to rerun :)23:50
wgrantI guess I should disable compression and see how much that shaves off23:51
wgrantIt was the limiting factor in my heavy caching experiments years ago.23:51
wgrantbzip2 is only 5-10% of the time23:54
cjwatsonThe {Plain,Gzip,Bzip2}TempFile scheme could be fixed to not do tempfile.mkstemp when it's just going to discard the result (in the gzip and bzip2 cases)23:56
cjwatsonI expect that's epsilon though23:56
wgrantYeah23:56
cjwatsonOh, just the bzip2 case, not gzip23:56
wgrantWill be interesting to see how much this improves things on prod23:57
cjwatsonStill, stupid code layout23:57
wgrantWe have network latency and auth etc. there.23:57
cjwatsonYeah23:57
wgrantSo the many->notmany queries will be a much bigger win.23:57
wgrantPlus wildcherry is a potato.23:57
cjwatsonkubuntu-ninjas trusty binary-amd64 took 23s on prod on 2014-05-1323:59
cjwatsondunno how close to the same set of packages that is23:59
wgrantRoughly 46000 additional queries in step C' across all suites23:59

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!