Thursday, 2021-02-11

corvusclarkb: was just waiting for a second +2; done00:01
clarkbiurygregory: sorry that was meant for ianw00:02
clarkbcorvus: cool was just checking as I thought it looekd fine00:02
*** tosky has quit IRC00:17
openstackgerritMerged zuul/zuul master: Gerrit: Add SSH review tag  https://review.opendev.org/c/zuul/zuul/+/77173300:19
iurygregoryclarkb, no worries =)00:36
openstackgerritMerged zuul/zuul master: Gerrit: Add gerrit version check for HTTP review tag  https://review.opendev.org/c/zuul/zuul/+/77503701:03
*** ianychoi has joined #zuul02:09
*** jamesmcarthur has quit IRC04:12
*** jamesmcarthur has joined #zuul04:13
*** jamesmcarthur has quit IRC04:18
*** jamesmcarthur has joined #zuul04:37
*** ykarel|away has joined #zuul04:40
*** ykarel|away is now known as ykarel04:41
*** jamesmcarthur has quit IRC05:23
*** jamesmcarthur has joined #zuul05:23
*** jamesmcarthur has quit IRC05:28
*** jamesmcarthur has joined #zuul05:28
*** jfoufas1 has joined #zuul05:31
*** evrardjp has quit IRC05:33
*** evrardjp has joined #zuul05:33
*** jamesmcarthur has quit IRC06:11
*** jamesmcarthur has joined #zuul06:11
*** jamesmcarthur has quit IRC06:16
*** vishalmanchanda has joined #zuul06:22
*** jamesmcarthur has joined #zuul06:42
*** reiterative has quit IRC06:49
*** reiterative has joined #zuul06:49
*** jcapitao has joined #zuul07:22
*** jamesmcarthur has quit IRC07:29
openstackgerritMerged zuul/zuul master: Format multi-line log entries  https://review.opendev.org/c/zuul/zuul/+/77260207:30
*** jamesmcarthur has joined #zuul07:43
*** ykarel has quit IRC07:44
*** ykarel has joined #zuul07:46
*** jamesmcarthur has quit IRC07:52
*** hashar has joined #zuul07:52
*** rpittau|afk is now known as rpittau07:53
*** jamesmcarthur has joined #zuul08:08
*** jpena|off is now known as jpena08:29
*** jamesmcarthur has quit IRC08:30
*** ianychoi has quit IRC08:33
*** tosky has joined #zuul08:36
*** jamesmcarthur has joined #zuul08:44
*** ianychoi has joined #zuul08:48
*** jamesmcarthur has quit IRC09:03
openstackgerritFelix Edel proposed zuul/zuul master: Merge ZooKeeper connection and client classes  https://review.opendev.org/c/zuul/zuul/+/77144209:16
openstackgerritFelix Edel proposed zuul/zuul master: Connect merger to Zookeeper  https://review.opendev.org/c/zuul/zuul/+/71622109:16
openstackgerritFelix Edel proposed zuul/zuul master: Connect fingergw to Zookeeper  https://review.opendev.org/c/zuul/zuul/+/71687509:17
openstackgerritFelix Edel proposed zuul/zuul master: Connect executor to Zookeeper  https://review.opendev.org/c/zuul/zuul/+/71626209:17
openstackgerritFelix Edel proposed zuul/zuul master: Improve typings in context of 744416  https://review.opendev.org/c/zuul/zuul/+/75357809:17
openstackgerritFelix Edel proposed zuul/zuul master: Make Zookeeper mandatory for Scheduler  https://review.opendev.org/c/zuul/zuul/+/75671609:17
openstackgerritFelix Edel proposed zuul/zuul master: Make ConnectionRegistry mandatory for Scheduler  https://review.opendev.org/c/zuul/zuul/+/75709509:18
openstackgerritFelix Edel proposed zuul/zuul master: Improve typings in context of 756716 and 757095  https://review.opendev.org/c/zuul/zuul/+/75714809:18
openstackgerritFelix Edel proposed zuul/zuul master: Instantiate executor client, merger, nodepool and app within Scheduler  https://review.opendev.org/c/zuul/zuul/+/75714909:18
openstackgerritFelix Edel proposed zuul/zuul master: Improve typings in context of 756304  https://review.opendev.org/c/zuul/zuul/+/75709709:18
openstackgerritFelix Edel proposed zuul/zuul master: Component Registry in ZooKeeper  https://review.opendev.org/c/zuul/zuul/+/75918709:18
openstackgerritFelix Edel proposed zuul/zuul master: Move management and result events to model  https://review.opendev.org/c/zuul/zuul/+/76116309:18
openstackgerritFelix Edel proposed zuul/zuul master: Allow (de-)serialization of management events  https://review.opendev.org/c/zuul/zuul/+/76116409:19
openstackgerritFelix Edel proposed zuul/zuul master: Allow (de-)serialization of result events  https://review.opendev.org/c/zuul/zuul/+/76116509:19
openstackgerritFelix Edel proposed zuul/zuul master: Add and fix fields in driver trigger event models  https://review.opendev.org/c/zuul/zuul/+/76116609:19
openstackgerritFelix Edel proposed zuul/zuul master: Allow (de-)serialization of trigger events  https://review.opendev.org/c/zuul/zuul/+/76116709:19
openstackgerritFelix Edel proposed zuul/zuul master: Interface to get a driver's trigger event class  https://review.opendev.org/c/zuul/zuul/+/76116809:19
openstackgerritFelix Edel proposed zuul/zuul master: Clear list of Zookeeper connections after tests  https://review.opendev.org/c/zuul/zuul/+/76116909:19
openstackgerritFelix Edel proposed zuul/zuul master: Increase default test wait timeout to 120s  https://review.opendev.org/c/zuul/zuul/+/76375409:19
openstackgerritFelix Edel proposed zuul/zuul master: Implementation of Zookeeper backed event queues  https://review.opendev.org/c/zuul/zuul/+/76117009:20
openstackgerritFelix Edel proposed zuul/zuul master: Implementation of Zookeeper event watcher  https://review.opendev.org/c/zuul/zuul/+/76117109:20
*** jamesmcarthur has joined #zuul09:20
openstackgerritFelix Edel proposed zuul/zuul master: Switch to Zookeeper backed trigger event queues  https://review.opendev.org/c/zuul/zuul/+/76117209:20
openstackgerritFelix Edel proposed zuul/zuul master: Switch to Zookeeper backed management event queues  https://review.opendev.org/c/zuul/zuul/+/76173809:20
openstackgerritFelix Edel proposed zuul/zuul master: Driver event ingestion  https://review.opendev.org/c/zuul/zuul/+/71729909:20
openstackgerritFelix Edel proposed zuul/zuul master: Use logical timestamp to detect outdated changes  https://review.opendev.org/c/zuul/zuul/+/76375509:21
openstackgerritFelix Edel proposed zuul/zuul master: Make buildset mandatory on build  https://review.opendev.org/c/zuul/zuul/+/77090009:21
openstackgerritFelix Edel proposed zuul/zuul master: Implement ZooKeeper builds API  https://review.opendev.org/c/zuul/zuul/+/77090109:21
openstackgerritFelix Edel proposed zuul/zuul master: Switch to ZooKeeper backed job execution and result events  https://review.opendev.org/c/zuul/zuul/+/77090209:21
openstackgerritFelix Edel proposed zuul/zuul master: Refactor pipeline processing in run handler  https://review.opendev.org/c/zuul/zuul/+/77145209:21
openstackgerritFelix Edel proposed zuul/zuul master: Dequeue superceded items via management event  https://review.opendev.org/c/zuul/zuul/+/77145309:21
openstackgerritFelix Edel proposed zuul/zuul master: Text stream API for sharded Zookeeper data  https://review.opendev.org/c/zuul/zuul/+/77145409:21
openstackgerritFelix Edel proposed zuul/zuul master: Cache unparsed config files in Zookeeper  https://review.opendev.org/c/zuul/zuul/+/77145509:21
openstackgerritFelix Edel proposed zuul/zuul master: Store tenants in unparsed abide as dict  https://review.opendev.org/c/zuul/zuul/+/77145609:21
openstackgerritFelix Edel proposed zuul/zuul master: Refactor config/tenant (re-)loading  https://review.opendev.org/c/zuul/zuul/+/77145709:22
openstackgerritFelix Edel proposed zuul/zuul master: Tenant read/write lock in Zookeeper  https://review.opendev.org/c/zuul/zuul/+/77145809:22
openstackgerritFelix Edel proposed zuul/zuul master: Lock pipelines during processing  https://review.opendev.org/c/zuul/zuul/+/77145909:22
openstackgerritFelix Edel proposed zuul/zuul master: Lock global event queues during processing  https://review.opendev.org/c/zuul/zuul/+/77146009:22
openstackgerritFelix Edel proposed zuul/zuul master: Store tenant layout state in Zookeeper  https://review.opendev.org/c/zuul/zuul/+/77146109:22
openstackgerritFelix Edel proposed zuul/zuul master: Configure unique command socket path per scheduler  https://review.opendev.org/c/zuul/zuul/+/77146209:22
openstackgerritFelix Edel proposed zuul/zuul master: Support cross scheduler config loading  https://review.opendev.org/c/zuul/zuul/+/77146309:22
openstackgerritFelix Edel proposed zuul/zuul master: Add UUID for queue items  https://review.opendev.org/c/zuul/zuul/+/77251209:22
openstackgerritFelix Edel proposed zuul/zuul master: Store semaphore state in Zookeeper  https://review.opendev.org/c/zuul/zuul/+/77251309:22
openstackgerritFelix Edel proposed zuul/zuul master: Fix test_gerrit.TestPolling.test_config_update  https://review.opendev.org/c/zuul/zuul/+/77302309:23
openstackgerritFelix Edel proposed zuul/zuul master: Move serialization helper methods to ZooKeeperBase class  https://review.opendev.org/c/zuul/zuul/+/77302409:23
openstackgerritFelix Edel proposed zuul/zuul master: Implement ZooKeeper backed merge jobs  https://review.opendev.org/c/zuul/zuul/+/77302509:23
openstackgerritFelix Edel proposed zuul/zuul master: Switch to ZooKeeper backed merge jobs  https://review.opendev.org/c/zuul/zuul/+/77302609:23
openstackgerritFelix Edel proposed zuul/zuul master: Collect statsd information from ZooKeeper rather than gearman  https://review.opendev.org/c/zuul/zuul/+/77302709:23
openstackgerritFelix Edel proposed zuul/zuul master: Remove remaining gearman parts from merger  https://review.opendev.org/c/zuul/zuul/+/77302809:23
openstackgerritFelix Edel proposed zuul/zuul master: Provide zk_client to merger client rather than the whole scheduler  https://review.opendev.org/c/zuul/zuul/+/77302909:23
openstackgerritFelix Edel proposed zuul/zuul master: Remove history from RecordingMergeClient  https://review.opendev.org/c/zuul/zuul/+/77303009:23
openstackgerritFelix Edel proposed zuul/zuul master: Align ZooKeeper builds and merger API  https://review.opendev.org/c/zuul/zuul/+/77303109:24
openstackgerritFelix Edel proposed zuul/zuul master: Make scheduler optional in Nodepool  https://review.opendev.org/c/zuul/zuul/+/77460509:24
openstackgerritFelix Edel proposed zuul/zuul master: Directly return the nodeset in nodepool without the scheduler  https://review.opendev.org/c/zuul/zuul/+/77460609:24
openstackgerritFelix Edel proposed zuul/zuul master: Remove scheduler from Nodepool completely  https://review.opendev.org/c/zuul/zuul/+/77460709:24
openstackgerritFelix Edel proposed zuul/zuul master: Make NodeSet fully serializable  https://review.opendev.org/c/zuul/zuul/+/77460809:24
openstackgerritFelix Edel proposed zuul/zuul master: Calculate build start and end time on executor server  https://review.opendev.org/c/zuul/zuul/+/77460909:24
openstackgerritFelix Edel proposed zuul/zuul master: Lock/unlock nodes on executor server  https://review.opendev.org/c/zuul/zuul/+/77461009:24
openstackgerritFelix Edel proposed zuul/zuul master: DNM: Reduce number of jobs for SOS development  https://review.opendev.org/c/zuul/zuul/+/77508109:24
*** andy-ladjadj has joined #zuul09:28
*** jamesmcarthur has quit IRC09:30
*** andy-ladjadj has quit IRC09:31
*** andy-ladjadj has joined #zuul09:33
*** ykarel is now known as ykarel|lunch09:33
*** Pilou has quit IRC09:38
*** hashar has quit IRC10:07
*** hashar has joined #zuul10:08
*** nils has joined #zuul10:16
*** ykarel|lunch is now known as ykarel10:36
*** jamesmcarthur has joined #zuul11:28
*** jamesmcarthur has quit IRC11:35
tobiashcorvus: I'm having a hard time getting nodepool up again after a cloud image since it gets immediately stuck with deleting 1500 nodes at the same time with one thread each11:47
tobiashI think we need to think about how we can reduce the thread count there11:48
tobiashs/cloud image/cloud outage/11:52
*** jcapitao has quit IRC12:02
tobiashwe might hit a limit in regarding nodes per provider/tenant maybe12:16
*** andy-ladjadj has quit IRC12:21
*** rlandy has joined #zuul12:29
*** jpena is now known as jpena|lunch12:33
*** mgagne has quit IRC12:52
*** mgagne has joined #zuul12:53
avasstobiash: you don't happen to have a workaround to get the kubernetes python library to work behind a proxy? I found this: https://github.com/kubernetes-client/python/issues/333#issuecomment-39808782613:07
tobiashavass: I never tried that13:07
avassbut that would require a patch to nodepool and it's a bit hackish13:08
avassokay13:08
avassI'll see if we can get the endpoint to come to us instead then :)13:08
*** jpena|lunch is now known as jpena13:26
*** jamesmcarthur has joined #zuul13:32
*** jamesmcarthur has quit IRC13:39
tobiashavass: last resort would be tunneling through socat13:49
*** vishalmanchanda has quit IRC14:14
*** ikhan has joined #zuul14:20
*** ykarel_ has joined #zuul14:26
openstackgerritAdam Richter proposed zuul/zuul master: test  https://review.opendev.org/c/zuul/zuul/+/77510814:28
*** ykarel has quit IRC14:29
openstackgerritRon Izraeli proposed zuul/zuul master: Linkify BuildOutput Show URLs in message as links  https://review.opendev.org/c/zuul/zuul/+/77510914:29
openstackgerritRon Izraeli proposed zuul/zuul master: Linkify BuildOutput Show URLs in message as links  https://review.opendev.org/c/zuul/zuul/+/77510914:31
*** nils has quit IRC14:33
*** nils has joined #zuul14:41
*** ikhan has quit IRC14:43
*** ykarel_ has quit IRC14:49
openstackgerritRon Izraeli proposed zuul/zuul master: Linkify BuildOutput Show URLs in message as links  https://review.opendev.org/c/zuul/zuul/+/77510914:50
*** hashar is now known as hasharAway14:51
*** andy-ladjadj has joined #zuul14:56
*** saneax has quit IRC15:11
*** ikhan has joined #zuul15:16
*** ikhan has quit IRC15:20
*** hasharAway is now known as hashar15:22
*** jamesmcarthur has joined #zuul15:36
*** andy-ladjadj has quit IRC15:36
*** jamesmcarthur has quit IRC15:42
openstackgerritAdam Richter proposed zuul/zuul master: Linkify BuildOutput Show URLs in message as links  https://review.opendev.org/c/zuul/zuul/+/77510915:43
-openstackstatus- NOTICE: Recent POST_FAILURE results from Zuul for builds started prior to 15:47 UTC were due to network connectivity issues reaching one of our log storage providers, and can be safely rechecked15:52
*** jfoufas1 has quit IRC16:09
*** jamesmcarthur has joined #zuul16:45
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Use opendev base docker image and add jobs  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77499817:12
corvusmordred: ^ added gcc to bindep; builds locally now, thanks :)17:12
mordredcorvus: \o/17:12
*** jamesmcarthur has quit IRC17:20
*** jamesmcarthur has joined #zuul17:20
corvustobiash: oh, looking an the storage proxy -- it looks like you handle multiple clouds by trying all of them.  that's an interesting approach!  that would probably scale up to, say <10 clouds reasonably well i think.  seen any issues with that?17:22
tobiashwe use that with 3 clouds atm17:23
corvustobiash: does it have to get a keystone auth token for each get request to each cloud?17:23
corvusor does it keep them around since the connections are long-lived in the cloudcache?17:24
corvusi'm guessing the latter, so the first request would get X auth tokens, but thereafter marginal cost is small17:24
tobiashcorvus: it holds active sessions for each cloud in the background17:25
corvusk, that's what i thought17:26
mordredI like that approach17:26
corvusyeah, i was looking into whether we need to send over extra info about what cloud to use, but i think this is good for now17:27
mordredyeah - the openstack Connection object will cache the tokens - and will re-auth as needed if it times out17:27
*** rlandy is now known as rlandy|biab17:30
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Remove container prefix and tenant  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524317:32
corvustobiash: I have another question which i have phrased in the form of a patch ^ can you let me know if i'm missing something that required the tenant/prefix stuff?17:33
tobiashcorvus: does openstacksdk implicitly use the first part of the path as container?17:41
tobiashcorvus: cloud information maybe could be added later optionally like two modes (try all clouds or try cloud that's encoded in the path)17:43
*** rpittau is now known as rpittau|afk17:43
corvustobiash: well, the existing proxy code explicitly adds the container back into the path, so i think so.17:43
corvus(line 80 in handle_get)17:43
tobiashI think both options have their advantages, the try all clouds mode could enable replication between clouds and silent fallback, the encoded cloud name would improve access times with many cluds17:43
tobiashcorvus: ah now I get it, the current code adds the container prefix to the container name like 'opendev-prod-' so that doesn't need to be in the user visible url17:45
tobiashI'd like to retain this behavior17:46
*** jpena is now known as jpena|off17:47
corvustobiash: okay, i think i see the intent.  i'll propose a new thing.17:47
clarkbthe reason for the container name mangling like that is some object stores can't handle duplicate container names17:49
corvusclarkb: sure, but zuul knows what container it uploaded to and can tell the proxy in the url17:49
corvusthe reason for the container name mangling is tobiash wants to hide the full container name from users17:50
*** jamesmcarthur has quit IRC17:53
*** jamesmcarthur has joined #zuul17:54
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Make container name prefix more generic  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524317:55
corvustobiash: ^ how about that?17:55
clarkbcorvus: ya I just awnted to point out that the data isn't really important, Its largely there to make s3 and ceph happy17:55
tobiashcorvus: lgtm, I guess while you're at it we could switch the log to info, the warning was just a crude hack to not having to customize the log config ;)17:57
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Log at info level  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524717:59
tobiashthanks :)17:59
corvusnp17:59
corvustobiash: do you have any thoughts about gunicorn vs uwsgi?18:00
*** jamesmcarthur has quit IRC18:00
tobiashI don't know anymore, I think gunicorn was easier or just the first thing I found18:00
tobiashbut at least we had to tune the parameters to make it performant for prod18:01
corvusok.  my expectation is that uwsgi will perform better; i'd like to validate that, and if so, i'll propose a switch.18:01
tobiash++18:01
tobiashat that time I took the first thing I could get to work because of ENOTIME18:02
tobiashhence also the missing unit tests18:02
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Just use CLOUD_NAMES as env variable  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524818:08
corvustobiash: i'm guessing that's the code path you're using anyway, so that would be no change for you ^.18:09
tobiashyou can guess what was first and needed to stay compatible during a version bump :)18:09
corvusheh :)18:09
*** jamesmcarthur has joined #zuul18:17
*** rlandy|biab is now known as rlandy18:37
tobiashcorvus: I think for nodepool I'll need a load testing tool that generates a lot of node requests without a zuul, would that something that's useful having in nodepool/tools?18:37
Shrewstobiash: i had a similar tool for that. guess i didn't include it in tools18:39
* Shrews checks other machine to see if it still exists18:39
tobiashShrews: that would be awesome :)18:40
mordredcorvus: fwiw - I believe we make a uwsgi base image in the opendev image jobs18:41
corvustobiash: yes; note that you can generate a lot of requests by running a launcher with a high min-ready count.18:41
Shrewstobiash: ugh, nope. seems it's gone. sorry18:41
tobiashcorvus: I'm thinking about something that puts loads of node requests into zk and keeps the nodes for some time and releases them again18:42
tobiashto get fast node turnaround times and have a high instance creation rate18:42
tobiashI think we might approach a limit atm at ~1000 per provider18:43
clarkbtobiash: there are also limits to how many you can do per process (this is why we split things up into multiple launchers18:45
tobiashclarkb: I've already split into one launcher per provider18:45
mordredcorvus: yup - we even use it for lodgeit: https://opendev.org/opendev/lodgeit/src/branch/master/Dockerfile18:46
tobiashso to scale more I think I'd need to tune nodepool or split one provider into two smaller ones in different tenants18:46
tobiashif I find a way to tune it I'd prefer that18:46
corvustobiash: right, but you may only need to write a node request deletor18:46
corvuser18:47
corvusrather a node deleter18:47
corvususe nodepool to drive the request node, then just delete them fast.18:47
tobiashcorvus: yes, that's the plan18:47
tobiashnot sure if I want to lock/use/unlock the nodes as well to simulate some jobs18:47
corvusright, i was just saying you could let min-ready drive the request side of things and maybe same some time18:48
tobiashmaybe keeping each node for some minutes makes the test more realistic18:48
corvusi was assuming you wanted to optimize the delete path, so you wouldn't need to handle locks.  basically, min-ready plus mass-delete gets you a quick way to exercise that case18:49
corvusbut obviously if you want a more sophisticated simulation, then doing the whole request workflow makes sense18:49
corvusanyway, just a thought that could save a bit of time18:49
tobiashyeah, thx18:49
tobiashI'm not sure if it's just the delete path actually18:50
tobiashcorvus: I'm not sure if it's just the delete path actua18:50
tobiashoops18:50
tobiashhttp://paste.openstack.org/show/802581/18:50
tobiashthat's a profile dump from today18:50
clarkbtobiash: gotcha so that limit likely is also for the launcher as a whole too. A full steam ahead launcher with one provider hits that limit essentailly18:51
tobiashit looks like it is using mostly the optimized list_servers approach already but many threads calling list_servers makes it computationally expensive when approaching hindreds of threads18:51
corvustobiash: at large numbers of threads in python, context switches overshadow code18:52
corvus1k threads is the effective limit we've seen in nodepool18:52
tobiashso I'm thinking it might be worth exploring having one deleter and one creator thread that periodically calls list_servers and updates the according states in one go18:52
corvustobiash: can you elaborate on that?18:53
tobiashcurrently we have one thread per instance creation/deletion which all call list_servers (which is cached but still is expensive to filter and process when doing with too many threads). I think it might be much more efficient to have a creator and a deleter thread per provider that does the state handling of creating and deleting nodes.18:55
tobiashthis way it could call get_servers, update all nodes in the creation/deletion list and cycle back to get_servers18:56
tobiashthat way we would avoid the thread contention18:56
corvusso a launcher would only have 2 threads?18:56
tobiashper provide18:56
tobiashI think for the deletion use case this would be easy since that's mostly fire and forget18:56
corvusthat's a major redesign, due to the fact that creating and deleting are messy asynchronous operations on multiple resources18:56
tobiashfor the creation part that might be more complicated18:57
corvuswe looked at doing that for the v3 rewrite, but felt it would be too complex18:57
tobiashI think I'd like to try that at least for deletions since I'm convinced that has some benefit18:57
tobiashit can well be that this is too complicated for the creations18:58
corvustobiash: i agree this might work for deletion19:00
corvusi mean, obviously it would work; i mean, i agree deletion may be simple enough that implementation would not be too complex to understand :)19:01
tobiashyes, call delete, put instance/node id into a list and let a thread periodically get the server list and mark the deletion as finished when the instance is gone19:01
tobiashcreation is much more complex19:02
tobiashbut maybe deletion is the bigger problem anyway since that can occur in masses e.g. during a gate reset19:02
corvusand it may even be possible for creation, but i think we'd have to have a state machine engine, or async.  and my experience with async is that it's impossible to debug, so i'd vote state machine if we did that.19:02
corvustobiash: yes.  and every delete thread you get rid of is a create thread you can have19:03
tobiashbut I think I'll first establish a ground truth against a test cloud and see if that improves nodepool's performance19:03
corvussounds good19:03
tobiashyeah, state machine is likely easier19:03
clarkbanother option is multiprocessing, though i don't necessarily think that is better (particularly if you want thousands of processes)19:03
corvusclarkb: yeah, we could lose some of the benefits of caching cloud responses (list servers) if we do that19:04
tobiashclarkb: multiprocessing would hammer the cloud more since the server list gets quite expensive with 1000 nodes in a tenant19:04
mordredyah. although I've actually had thoughts for quite a while about external caching for those reponses19:04
mordredso - if that does wind up being a road that needs to be explored, I don't think it's impossible to have a shared external cache for the list results19:05
corvusyeah, with external caching multiprocessing is viable19:05
corvusbut we spend most of our time waiting on responses to api requests, so the GIL isn't actually that much of an issue.  it's more the context switch to each of them which then do a little bit of work to see if they're ready to move on.19:05
tobiashthat's then plan b for instance creation optimization :)19:06
corvusheh, uwsgi is more strict about the wsgi protocol than gunicorn19:09
tobiashmaybe that's why got gunicorn running first :D19:12
*** sshnaidm is now known as sshnaidm|afk19:19
corvusgunicorn and uwsgi are pretty competitive with big log files; with lots of smaller requests, uwsgi is faster. i'm downloading a 15k host-info.yaml file using ab with 100x concurrency and 10 workers; gunicorn handles 650/sec, uwsgi 1100/sec.19:23
tobiashimpressive19:23
corvus(i switched the proxy to just use the requests library to talk to an http server on my local network, so we're missing the whole keystone auth part from this benchmark, but i thought that was preferable to making it a test of network bandwidth)19:25
tobiash++19:25
corvusi'll try out this opendev uwsgi container image...19:26
fungitesting appreciated. i don't think we're actually consuming it in opendev yet since we haven't redeployed our lodgeit from the containers yet19:38
fungithough i think noonedeadpunk may be using it already19:39
*** jamesmcarthur has quit IRC19:52
*** jamesmcarthur has joined #zuul19:53
*** jamesmcarthur has quit IRC19:57
mordredfungi: yeah - vexxhost is also using the uwsgi-base image for a few things19:58
mordredhttps://opendev.org/vexxhost/atmosphere/src/branch/master/Dockerfile for instance19:58
openstackgerritJeremy Stanley proposed zuul/zuul-storage-proxy master: Use opendev base docker image and add jobs  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77499819:58
fungimordred: ^ as requested19:58
mordredthank you sir!19:58
fungithank you as well, i just copied and pasted for the most part19:59
mordredbest way to write code19:59
*** jamesmcarthur has joined #zuul20:04
fungieverything i know about solid development practices i learned by copying and pasting random bits of php i found under the sofa cushions ;)20:15
*** hashar has quit IRC21:18
*** jamesmcarthur has quit IRC21:36
*** jamesmcarthur has joined #zuul21:36
*** jamesmcarthur has quit IRC21:42
*** jamesmcarthur has joined #zuul21:57
*** gmann is now known as gmann_afk22:10
*** PrinzElvis has quit IRC22:41
*** iamweswilson has quit IRC22:41
*** iamweswilson has joined #zuul22:41
*** PrinzElvis has joined #zuul22:41
*** jamesmcarthur has quit IRC22:45
*** jamesmcarthur has joined #zuul22:45
*** jamesmcarthur has quit IRC22:49
*** jamesmcarthur has joined #zuul22:49
*** nils has quit IRC22:58
*** rlandy has quit IRC23:05
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Make container name prefix more generic  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524323:08
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Log at info level  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524723:08
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Just use CLOUD_NAMES as env variable  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524823:08
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Switch to uwsgi  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77529423:08
corvusmordred, tobiash: ^ there we go, that should do it i think23:09
*** gmann_afk is now known as gmann23:11
mordredcorvus: that's a neat stack!23:20
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Switch to uwsgi  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77529423:27
corvusmordred: yeah, i like how the uwsgi stuff plugs in.  ^ one char typo :/23:28
mordredcorvus: \o/23:30
corvusmordred: i feel like we have tobiash's approval in spirit for the uwsgi switch; so i think the whole stack has enough approvals to merge...23:32
corvusmordred: but can you remove your +w from 775243?23:32
mordredyup!23:32
corvusmordred: i'd like to merge the first 2 changes alone, then verify the docker upload before merging the rest23:33
mordred++ good plan23:33
corvuscool, done :)23:33
openstackgerritMerged zuul/zuul-storage-proxy master: Initial import of zuul storage proxy  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77494223:40
*** jamesmcarthur has quit IRC23:41
*** jamesmcarthur has joined #zuul23:42
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Use opendev base docker image and add jobs  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77499823:53
corvusfungi: ^ oops too much copy pasta23:54
corvusi'm going to just re-approve that; it's an obvious copy-pasta fix23:54
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Make container name prefix more generic  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524323:55
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Log at info level  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524723:55
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Just use CLOUD_NAMES as env variable  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77524823:55
openstackgerritJames E. Blair proposed zuul/zuul-storage-proxy master: Switch to uwsgi  https://review.opendev.org/c/zuul/zuul-storage-proxy/+/77529423:55
*** jamesmcarthur has quit IRC23:58

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!