20:00:29 #startmeeting horizon 20:00:30 Meeting started Wed Nov 29 20:00:29 2017 UTC and is due to finish in 60 minutes. The chair is ying_zuo. Information about MeetBot at http://wiki.debian.org/MeetBot. 20:00:31 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 20:00:33 The meeting name has been set to 'horizon' 20:00:41 Hi everyone o/ 20:00:47 o/ 20:00:51 hi 20:01:51 #topic Queens-2 milestone 20:01:57 I plan to tag the release next Tuesday or Wednesday 20:02:06 here are the tickets planned for this milestone 20:02:20 #link https://launchpad.net/horizon/+milestone/queens-2 20:03:02 #topic Fetch resources in parallel discussion (again) (e0ne) 20:03:28 I want to get some feedback on this proposal 20:03:38 #link http://lists.openstack.org/pipermail/openstack-dev/2017-October/124129.html 20:04:02 there're number of patches on the review and some are already merged 20:04:23 but we still don't have a decision how to go forward this futurist 20:06:20 are we discussing about a specific patch? 20:07:01 ying_zuo: you can find patches in scope of https://blueprints.launchpad.net/horizon/+spec/fetch-resources-in-parallel 20:07:29 but we need a general agreement how to deal with futurist in horizon 20:08:05 e0ne: what I'm concerned with is how this works with the web servers, such as apache, which do their own thread management 20:08:41 rdopiera: for now, we use python threads and allow them in mod_wsgi config 20:08:57 rdopiera: my proposal is to use greenthreads instead 20:09:17 e0ne: you don't need stackless python for that? 20:09:44 rdopiera: no, just eventlet + futurist(it's already in our requirements.txt) 20:10:46 amotoki asked for the performance data on the patch/blueprint https://review.openstack.org/#/c/426493/ 20:11:09 ying_zuo: there are performance testing results in my email 20:11:28 amotoki asked it before I sent a message to openstack-dev 20:11:51 I see. can you reply there with the link? 20:12:09 #link https://docs.google.com/spreadsheets/d/14zDpdkPUfGDR_ZycaGUoT64kHsGi1gL9JOha8n5PVeg/edit?usp=sharing 20:12:50 I added the link ^^ to the blueprint 20:14:13 hi 20:14:14 , i succeeded to wake up earlier 20:14:54 e0ne: do you have some data without futurist too? 20:14:59 good morning :) 20:15:06 amotoki: good morning! I hope, you enjoyed your morning coffee 20:15:21 amotoki: no, why do we need it? 20:15:47 amotoki: futurist just a wrapper over threading libraries 20:16:24 in my understandng, we first need to discuss futurist (or parallel loading) is needed or not. 20:16:31 amotoki: I hope, everybody agrees that parallel API calls are better for our case 20:17:02 even though it speed up loading time per user, i am not sure how this affect totally. 20:17:20 amotoki: I don't get your point 20:17:52 in general, web server serves several requests in parallel. 20:18:12 do we have benchmark for the current used libraries? 20:18:23 total throughput and response time per request is a different thing. 20:18:30 cshen_: yes, there as a link above 20:19:06 i am wondering futurist introduces how much additional overhead. 20:19:36 if I remember correctly, we started the whole AngularJS rewrite to get parallel requests 20:19:39 amotoki: there is almost no overhead for horizon 20:20:04 rdopiera: yes, but I propose to speed-up our server-side code too 20:20:50 e0ne: sure 20:21:03 it would be good to get some data on how much performance gain this will give 20:21:35 #links https://github.com/openstack/horizon/blob/04894a0858adda0ae161d9ac1f1a8da017ba1c74/openstack_dashboard/dashboards/project/instances/views.py#L122 20:21:43 ^^ that's how we use futurist now 20:21:47 okay, so have we agreed introducing parallel loading using futurist as a baseline? 20:22:17 @ying_zuo: did you see my spreadsheet with tests results? 20:22:21 e0ne, how many API calls were in your benchmark? 20:22:31 amotoki: I hope so,,, 20:22:48 anyway some baseline performance data (without parallel loading) would be useful 20:22:53 I wonder if we should have settings like max_workers exposed in the settings, instead of hardcoded... 20:22:57 eone: yes, I mean compare with without parallel 20:23:23 in particular, to give the admins the ability to limit or even disable parallel loading 20:23:26 cshen_: it was 3 API calls 20:23:59 rdopiera: are talking about max_workers of ThreadPoolExecutor ? 20:24:21 rdopiera: I still doesn't understand why do we need to have this configurable 20:24:42 amotoki: I'm not sure about how that particular option works, I'm thinkning about the ability to limit the number of concurrent requests, not sure how we would do it exactly 20:25:03 ying_zuo: I don't have such data now, but I'm sure it will be slower (I did some testing in the past) 20:25:42 e0ne: with certain networks settings you don't want to have too many transfers at once 20:26:02 e0ne: that is also why web browsers only fetch up to 4 resources at a time 20:26:22 rdopiera: it's not true for current web browsers 20:26:44 e0ne: the option is there 20:27:26 rdopiera: seriously, if your production network and APIs don't allow 3-4 request in parallel, it's not a problem of horizon 20:28:06 e0ne: seriously, if horizon doesn't work at customer's site and there is no option to make it work, it is a problem of Horizon 20:28:43 I can't argue 20:28:58 e0ne: you are making assumptions about how horizon is being used that are not necessarily true 20:29:39 rdopiera: I agree 20:29:44 I'm also thinking that the ability to limit it to 1 request at a time may be useful to help debug race conditions 20:29:59 good point 20:30:04 espceially when there are multiple requests to the same service 20:30:12 or to services that use the same resource 20:30:20 but we won't have race conditions with only 1 request 20:30:56 exactly -- so if the problem goes away when you limit it to 1 request, you know it's a race condition :) 20:31:06 :) 20:31:13 so far most use cases are for reading, so it's not very risky 20:31:40 but we might at some point also use it for requests that modify data 20:32:22 so we should make that configurable 20:32:45 anything else on this topic? 20:33:07 ying_zuo: do we have any decision on this topic? 20:33:58 ThreadPoolExecutor is being used in horizon now, do you want to change it to something else? 20:34:08 i am not sure max_workers=1 and serial API calls are same or not. Does max_workers=1 create one new thread? 20:34:24 amotoki: in a current case - yes 20:34:34 I mean with futurist 20:35:32 in such case, does futurist execute each submit() one by one in a single worker? 20:36:21 it does, AFAIR 20:37:33 thanks 20:38:13 np 20:39:28 regarding ying_zuo's question, I am not sure which is betetr ThreadPoolExecutor or GreenThreadExecutor 20:40:45 I prefer GreenThreadExecutor 20:41:21 it's faster and doesn't require additional webserver configuration 20:41:52 it also uses less memory 20:41:55 ying_zuo: I propose to switch to GreenThreadExecutor 20:41:58 rdopiera: +1 20:42:11 however, it does monkey-patch the system functions, iirc 20:42:28 to add greenthread support to them 20:42:51 yes, eventlet assumes related modules are monkey-patched. 20:43:21 but I think it has been around long enough for most bugs to be shaken out 20:43:42 rdopiera: +1 20:44:17 e0ne: please update the blueprint for your proposal 20:44:28 ying_zuo: ok, I'll do 20:44:43 thanks. we can continue the discussion there 20:45:00 #topic Merge openstack-auth (amotoki) 20:45:03 ying_zuo: thanks 20:45:08 #link https://blueprints.launchpad.net/horizon/+spec/merge-openstack-auth 20:45:20 #info Upgrade issue of openstack_auth in pip environment 20:45:33 here's some information from amotoki: 20:45:49 https://www.irccloud.com/pastebin/AaEbFVsG/ 20:46:50 it only affects operators who use pip directly to install horizon. 20:47:02 would be good to have this information on the release note 20:47:17 perhaps it does not affect distro users. venv/container users are not affected too 20:48:19 i assume most operators with venv replaces venv when upgrading :) 20:48:33 the whole change also affects packagers 20:48:57 I propose to let them know about such changes in the future, as they might not be following everything all the time 20:49:10 rdopiera: +1 20:49:31 there was an email a while back 20:49:51 I missed it completely and so did zigo 20:50:06 it's our fault, of course 20:50:14 release note will be a good place for this :) 20:50:16 rdopiera: Missed what? 20:50:24 Merge of openstack-auth ? 20:50:26 zigo: the merging of openstack-auth 20:50:28 yeah 20:50:29 Right. 20:50:33 I'm fine with it, really. 20:50:44 One less package to maintain ! :) 20:50:51 yeah, it's just the kind of change that would be nice to be coordinated 20:51:06 the mail was http://lists.openstack.org/pipermail/openstack-dev/2017-July/119731.html 20:51:43 ok, that is exactly the kind of information that I meant, I withdraw my statement 20:51:47 What concerns me more is django 2.x, Horizon IMO needs to support that ASAP. 20:51:48 it's my fault I missed it 20:52:24 zigo: I think, we can start work on if right after release 20:52:43 e0ne: That's already too late for Debian at least. 20:52:51 :( 20:53:20 I'm not sure when, but "soon" django 2.x will replace 1.11 in Sid. When this happens, horizon wont work anymore in Debian. 20:53:43 but isn't django 2.x released yet? 20:53:45 I didn't test horizon with django2.0 20:53:54 amotoki: it's not released yet 20:54:34 zigo: oh.. it will be painfull for anybody who doesn't support python3 and django 2.0+ 20:55:04 5mins reminder 20:55:10 There's the rc1 already. 20:55:40 I thought django 1.11 is LTS so we are good for a while 20:55:48 I thinks, it's a good idea to add non-voting job with django 2.0 20:55:59 Doesn't Debian give django app maintainers time to catch up their apps after the release? 20:56:58 django 2.0 seems to be not a LTS version. 20:57:06 we will need a blueprint and a volunteer 20:57:08 ying_zuo: you're right, 1.11 will be supported until 2020 20:57:29 ying_zuo: I'll file a blueprint and propose a patch with non-voting job 20:57:43 cshen_: +1 20:57:44 https://www.djangoproject.com/weblog/2015/jun/25/roadmap/ 20:57:50 #link https://www.djangoproject.com/weblog/2015/jun/25/roadmap/ 20:58:26 :) 20:58:27 django 2.2 will be a LTS version, which is scheduled to be released in 2019. 20:58:27 returning back to django-openstack-auth topic, I need volunteers to finish remaining works 20:58:54 robcresswell: are you around? :) 20:58:56 there are a lot of remaining works out side of horizon repos. 20:59:09 requirements, devstack, project-config...... 20:59:45 unfortunately, I don't have time for it:(. there are still some bugs in my queue 21:00:18 I'm finishing up with downstream pike, hopefully should have some time now 21:00:19 we are running out of time. If anyone has some bandwidth, please pick up the todos in the blueprint 21:00:35 thanks everyone for joining 21:00:49 i am not sure i have covered all items..... cross-check is required 21:00:49 #endmeeting