/srv/irclogs.ubuntu.com/2006/11/30/#launchpad-meeting.txt

=== lifeless [n=robertc@ppp245-86.static.internode.on.net] has joined #launchpad-meeting
=== ddaa [n=ddaa@nor75-18-82-241-238-155.fbx.proxad.net] has joined #launchpad-meeting
=== danilos [n=danilo@cable-89-216-150-41.dynamic.sbb.co.yu] has joined #launchpad-meeting
=== kiko [n=kiko@200-171-140-32.dsl.telesp.net.br] has joined #launchpad-meeting
kikooy01:46
=== carlos [n=carlos@18.Red-88-16-32.dynamicIP.rima-tde.net] has joined #launchpad-meeting
carloshi01:46
danilosyo01:47
=== stub [n=stub@ppp-58.8.16.239.revip2.asianet.co.th] has joined #launchpad-meeting
kikostub!01:47
kikothanks for joining in01:47
kikoso for the +translate timeouts01:47
danilosthanks stub01:47
carlosstub: how do you feel?01:47
kikothere are some approaches we can take01:47
stubok. Had a nice nap.01:47
kiko1. we currently issue a large number of suggestion queries per page; I could change the code to issue only 401:48
kiko2. we could change the loading of suggestions to come in via ajax. one question is whether to do it as N small hits or as the 4 queries (as I propose in 1.)01:49
daniloswill we sacrifice detail for 1? like not listing which are "used in..." etc?01:49
kiko3. we could do the database refactoring and then revisit the issue again.01:49
danilosor is it only about 4 BIG queries?01:49
kikono, danilos -- equivalent queries, but doing them in one shot instead of 1001:49
daniloskiko: ok, but how much will that help? stub?01:50
carloskiko: will it work if a user selects 100 queries?01:50
kikoyou mean 100 translations?01:50
kikoyeah, it will01:50
kikoit will issue only 4 queries01:50
carloskiko: yeah, sorry01:50
kikoone for each type of suggestion01:50
stubIssuing fewer, large queries is generally better than many small.01:50
kiko(or are they 5? I forget. it's a small number)01:50
stubBut we need to time them to be sure.01:50
kikoI think it will help some, but not too much01:50
carloskiko: me too, I think it's just 401:50
carlosI would like to do both01:51
danilosstub, kiko: I am more thinking on order of magnitude -- I am aware it will help, but will it help enough?01:51
carlosoptimise the DB + move it to reduce the amount of queries01:51
kikoit's basically an "id IN (...)" query instead of N "id = X"  queries01:51
carloseven if just the optimisation kills the timeouts01:51
kikodanilos, it won't help enough, no. it will mitigate the problem.01:51
daniloscarlos ++01:51
daniloskiko: ok, so I am all for both, just like carlos01:51
kikothe only reason for doing 1. before 3. is because I don't know when you guys can get to 3.01:52
kikoI'm really unhappy with all the pain being inflicted on SteveA and I on rosetta 1.001:52
stubIf we are going to trim the tables down as specced, we might as well do it first to avoid needing to redo work.01:52
kikoand I want to make sure the distractions stop so that you can concentrate on those items.01:52
stubAlso any benchmarking on the old schema will be irrelevant with the new schema01:52
kikostub, nobody's going to have time before 1.0 -- rosetta's in bad shape01:52
danilosstub: it involves changing a lot of existing code, so no go at this time, I think01:53
stubok. So 3 isn't an option.01:53
kikostub, I don't think you have much time either..01:53
carloskiko: the only problem with DB optimisations is the migration process01:53
kikocarlos, and updating the code.01:53
carlosnot really, we are talking about more than 24 hours to do the migration....01:53
carlosat least that was our guess at all hands01:53
daniloscarlos: well, each and every query, class usage (ok, we can mitigate that by providing same interfaces in code), etc.01:53
carloswe cannot block the DB for 24 hours...01:54
daniloscarlos: ah, right, but I guess we can block rosetta input for 24 hours01:54
carlosdanilos: and the rest of launchpad01:54
danilosthen do the migration on carbon or something01:54
daniloshum... stub, any ideas?01:55
kikocarlos, 24 hours of migration downtime is manageable, but taking weeks to do the code update is not so much01:55
stubNothing that will be aailable in the short term.01:55
stubIt might not be 24 hours - again, we won't know until we have benchmarked it.01:55
kikodanilos, carlos, stub: we could disable rosetta for that period and survive.01:55
danilosok... btw, stub, will you be considering 8.2 upgrade soon?01:55
carloskiko: without distractions, I'm sure I would migrate code in a couple of working days 01:55
kikocarlos, a "couple". :-)01:56
stubkiko: We can't do that yet. It isn't implemented. Same with read only launchpad.01:56
carlostests shouldn't be an issue...01:56
carloskiko: 201:56
kikostub, I mean, we could disable translations.launchpad.net and put a page there.01:56
kikostub, and turn off the cronjobs01:56
carloskiko: no, I already talked with stuart about it, and the migration would lock person table too01:56
stubHmm... is it all on the one domain now? Then we could.01:56
carlosand that will lock the rest of launchpad01:56
kikocarlos, oh. the person table?!01:57
stubcarlos: I could work around that by dropping the constraint during migration.01:57
daniloscan't we have a read-only copy of person table? (we won't be changing it)01:57
carloskiko: we are moving that reference between tables01:57
carlosstub: if you feel confident about that, then it's fine for me to shutdown rosetta for the migration, that makes the process much more easy01:58
kikoyeah.01:58
daniloswe can only run into problems with accounts being merged into anothers while we do the migration, right?01:58
kikothat's what I was thinking01:58
stubdanilos: That is a good point.01:58
kikodanilos, we can disable merging, good point.01:58
carlosthat should be easy too01:59
kikoit's work, I know01:59
carlosat least more easy than playing with triggers and trying to do it on a live system...01:59
stubWe still need to test this though - we need to have disabled anything that looks at the rosetta tables, and I'm guessing we have portlets around that want to do that.01:59
kikobut it's at least not launchpad downtime for an undetermined time01:59
kikommmm01:59
danilosanyway, so, our plan is? go with 1 (optimize translate to have constant number of queries), then when 1.0 rolls out, go on with db optimizations as well01:59
kikostub, can't they go on querying the old tables? or will that be a disaster?01:59
kikodanilos, there was the ajax solution. how do people feel about that?02:00
daniloskiko: more work for "jumpy" page, imho02:00
stubThat would work I guess.02:00
danilosi.e. suggestions popping up as they're loaded02:00
danilosexpanding the page, etc.02:00
kikoit's true02:00
kikocarlos, is that how your patch behaved?02:00
kikoI think it also makes it harder for us to tell what the end-user experience is02:01
danilosif we use clickety-drop-downs, then that won't be very discoverable, imho02:01
danilosright02:01
carloskiko: I think it was hidden and when the user selected it02:01
carloswe expand and load the suggestions02:01
carloskiko: if non ajax solution works well, I would prefer it02:01
danilosI think this is basically just hiding the problem02:02
kikodanilos, well, mitigating the problem02:02
danilosthough, it might make sense for any *complete* translations02:02
danilosi.e. if a message is translated, don't show the suggestions02:02
danilosthat might even turn out to be better UI, imo02:02
carlosanyway, we should do that *after* the optimisation02:03
danilos(don't show == use ajax to show them)02:03
daniloswell, I think these are mutually exclusive02:03
danilosalmost, anyway02:04
danilosi.e. ajax still means separate queries for each message02:04
kikocarlos, yeah, you think so?02:05
kikodanilos, well, maybe not, but it's more complex if so.02:05
danilosthough, if we go with above of showing suggestions by default only for untranslated messages02:05
carloswell, I guess that we can optimise it, and later add the ajax part as an extra feature02:05
danilosboth would turn out useful02:06
daniloscarlos: agreed02:06
carlosI know will not be 100% reused and will require more changes02:06
kikook.02:06
kikoso fine, leave +translate with me for the time being. I will refactor the queries and then we'll see how it looks02:06
danilosok02:06
kikohopefully 1.0 will be in better shape by then02:06
kikothanks.02:06
danilosnow, another db related thing: search?02:06
danilosdo we only want google-search at this time, or should we go with db search as well?02:07
danilosdb search may require db upgrade at the very least (for partial indexes)02:07
carlosI think we should keep going with the search feature02:08
daniloshum, maybe not02:08
daniloshttp://www.postgresql.org/docs/8.0/static/indexes-partial.html02:08
kikogoogle-search for now will be enough02:08
carlosas planned02:08
kikoafter 1.0 you can come back to proper searching02:08
danilosI was under the impression that this required 8.2 at least02:08
stubyup02:09
kikoIF you surprise me and deliver 1.0 without me getting fired02:09
carloskiko: sure, search was a post 1.0 feature02:09
kikookay.02:09
kikocarlos, please make an effort to get TR landed so I can do browsing next week, ok?02:09
carloskiko: I will do it before leaving, don't worry02:10
kikothanks02:10
carlosdanilos: so, let's defer that for post 1.0 02:11
daniloscarlos: right02:11
carloskiko: anything else?02:14
kikocarlos, danilos: no. thanks a lot! 02:15
kikothanks for joining too stub 02:15
=== kiko [n=kiko@200-171-140-32.dsl.telesp.net.br] has left #launchpad-meeting ["Left]
carlosthanks dudes!02:15
danilosyup, especially stub, hope you get better soon02:15
=== stub coughs pitifully
danilos:)02:15
=== carlos [n=carlos@18.Red-88-16-32.dynamicIP.rima-tde.net] has left #launchpad-meeting ["Ex-Chat"]
=== lifeless [n=robertc@ppp245-86.static.internode.on.net] has joined #launchpad-meeting
=== lifeless [n=robertc@ppp245-86.static.internode.on.net] has joined #launchpad-meeting

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