21:00:05 #startmeeting swift 21:00:06 Meeting started Wed Oct 23 21:00:05 2019 UTC and is due to finish in 60 minutes. The chair is timburke. Information about MeetBot at http://wiki.debian.org/MeetBot. 21:00:07 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 21:00:10 The meeting name has been set to 'swift' 21:00:14 who's here for the swift meeting? 21:00:24 hello~ 21:00:27 o/ 21:01:13 o/ 21:01:57 i know tdasilva won't be able ot make it 21:02:26 alecuyer won't be present neither 21:02:30 and i'm guessing clayg won't either 21:02:35 so let's begin! 21:02:49 i can make it quick so mattoliverau and kota_ can get on with breakfast ;-) 21:02:56 :) 21:02:58 agenda's at https://wiki.openstack.org/wiki/Meetings/Swift 21:03:00 :) 21:03:16 #topic Shanghai 21:03:20 #link https://etherpad.openstack.org/p/swift-ptg-shanghai 21:03:28 it's getting so close now! 21:03:55 i know clay's got his visa squared away, and i got mine a couple weeks ago 21:04:19 rledisez and kota_, can't wait to see you guys there! mattoliverau, you will be missed! 21:04:28 Sorry I won't make it. 21:05:27 no worries -- if there's anything you'd like us to talk about, feel free to put it on the etherpad and i'll do my best to represent you (short of doing voices) 21:05:43 Lol 21:06:40 main thing for this was to just keep highlighting the etherpad 21:06:54 #topic stable release 21:07:12 we have a new swift! 21:07:13 #link http://lists.openstack.org/pipermail/release-announce/2019-October/008047.html 21:07:24 \o/ 21:07:37 nice 21:08:21 this is to make sure that our py3 support is the best we can make it. this cycle in particular, i'm going to try to be aggressive in backporting, *especially* for py3 fixes 21:08:57 sounds good 21:09:09 but having said that, i'm also working on getting stable releases together for stein, rocky, and even queens if i can hurry up ;-) 21:09:33 hence the flurry of patches i've proposed lately 21:10:32 i think stein is about ready; if anyone wants to take a look at the authors/changelog and check that i didn't miss anything, i'd appreciate it 21:10:34 #link https://review.opendev.org/#/c/690699/ 21:11:22 on to updates! 21:11:30 #topic object versioning 21:12:52 quick recap: we've got three patches we're working on: one to add the null namespace, one to add a new versioning mode, and one to get s3api to use it 21:13:59 the s3api patch had fallen behind for a while, but we recently got it rebased on top of the new versioning mode -- with all the functests passing! 21:14:09 probably means we need to write more tests ;-) 21:14:19 Lol 21:14:51 clay's recently gotten the versioning patch rebased on the null-namespace one 21:15:26 i'm pretty sure by shanghai we'll have a pretty solid patch chain with tests passing and everything 21:15:54 which should be handy reference as we discuss the design and implementation with kota_ and rledisez :-) 21:16:10 thx 21:17:33 one of the recent developments with the namespace patch is that we decided that any reserved name must start with a null byte -- effectively partitioning the namespace so we've got all reserved names, followed by "normal" user names 21:18:43 this allows us to avoid a lot of the problems with delimiters and figuring out whether a "subdir" entry ought to appear when there's a mix of reserved and user-accessible names 21:19:19 that's the main news there -- any questions or feedback? 21:19:22 you mean something like versionning_AUTH_xxx ? 21:19:31 \u0000 seems null 21:19:47 yeah -- though we aren't currently using it at the account level 21:19:49 * kota_ is looking at https://etherpad.openstack.org/p/swift-null-namespace 21:20:02 ok, I should re-read the etherpad 21:20:26 there would be URLs like /v1/AUTH_test/%00versioning%00/%00%00 21:21:25 part of the reason for wanting the null namespace was so we could roll up the usage stats in the existing account DB 21:22:20 ic 21:22:40 all right -- losf! 21:22:45 the objects exist in the user namespace as possible 21:23:00 yeah, kinda :-) 21:23:10 #topic lots of small files 21:23:22 rledisez, how's it going? 21:23:44 nothing new on our side. alecuyer was busy on other topics 21:24:26 he worked on the leveldb state patch (detecting if leveldb is corrupted or not) 21:24:49 it seems it's not as easy as he though, there is not method in leveldb to get that information 21:25:38 interesting. and a bit annoying, i suppose :-/ 21:27:17 all right. i'll keep an eye out for more patches, and *some day* i'll actually find time to get this going in my dev environent 21:28:16 i feel like i'm not doing your work justice -- i keep saying i'll look at it but have hardly started :-( 21:28:28 does leveldb support any time of checking/scrubbing. might be a good feature request for them. Then we can work on a workaround and hopefully get someone upstream to fix it long term ;) 21:28:59 timburke: don't worry, there is plenty of time to do it. And alecuyer will sit next to you in shangai until you try it ;) 21:29:15 lol 21:29:15 it'll be great :D 21:29:34 all right 21:29:40 #topic open discussion 21:29:43 mattoliverau: I can't answer, alecuyer may know that 21:29:57 nps, just thinking out load :) 21:30:20 mattoliverau, sorry, i dropped the sharding status updating -- figured you probably wouldn't mind too much though ;-) 21:30:38 lol, nps, sorry, I haven't been to active. I was away last week. And this week ramping up in a new role. 21:30:54 I have one topic for open discussion today: I noted recently that on our proxy servers (doing only proxy) we will be CPU-bound before we will be network-bound. our proxies are 16 cores Xeon E5-2630 at 2.40GHz, connected in 10Gbps 21:31:16 I made some profiling (only on PUT for now) and found that the "with SomeTimeout()" around read/write on sockets are really consuming a lot of CPU 21:31:40 just for the test, I removed them and was able to reduce the CPU usage by about 35% while increasing the speed of the upload by ~20% (on an other configuration with smaller CPU) 21:31:41 mattoliverau, glad the job's still safe :-) 21:32:08 I worked a bit this afternoon on a possible alternative implementation, the idea is to get a "watchdog" greenthread that will kill a socket if nothing happened in a $timeout delay. It seems it's viable 21:32:08 BTW, the second most consuming part is the one the enqueue/dequeue chunk for the putters. I have no idea how to patch that for now :) 21:32:44 huh -- interesting... 21:32:48 is CPU usage a concern for somebody else? 21:33:28 not to me but curious. 21:33:40 Still trying to figure out what the new role is, hopefully I'll still get to spend some of my time upstream on any project. Just not sure how much. (obvious I plan to make that Swift).. although that also means I'm not sure how much openstack releated travel support would be included (I'm assuming none) :( 21:34:01 i'll ask around for sure -- i don't remember off hand. i *thought* we'd usually get network-bound, but maybe that's more for larger objects... 21:34:35 this is where a Mark would be handy. He'd keep an eye on things via getput and find bottle necks. But he's retired now. 21:34:52 mattoliverau, sounds like i need to try to get an LCA talk now ;-) 21:35:15 yeah!! maybe we could add some basic perf test in ci/cd so we can get a baseline 21:35:31 then we could at least see any regressions. 21:35:43 again I'm just brain storming :) 21:36:20 I'll write in an ehterpad the methodolgy I followed for that test, so everyone can check if I didn't make mistake 21:36:55 sounds good, thanks for mentioning it! 21:37:03 rledisez: good idea, if there is something we can do we should do it. we don't want no stinkin bottlenecks ;) 21:37:40 perhaps, the info what's version of eventlet might be helpful. 21:37:59 and object size for the PUT 21:38:08 we're using thread switching around the chunk putter. 21:38:16 eventlet 0.25, it was 4G so the test was long enough 21:38:52 ok 21:39:25 kota_: exactly, every read or write is wrapped in a with Timeout that trigger an eventlet scheduling & co… (I'm not an eventlet expert) 21:41:52 yeah, gotta schedule the callback around https://github.com/eventlet/eventlet/blob/v0.25.0/eventlet/timeout.py#L65-L70 21:42:47 rledisez, what are your object_chunk_size and client_chunk_size? 21:43:09 defaults (64K) 21:43:54 might try increasing that... fwiw, i think we default to 1MB (and just tell customers to buy more RAM :P) 21:44:14 anyway, maybe this is best left for #openstack-swift :-) 21:44:23 sure :) 21:44:25 to fit the size of ec chunk? 21:44:31 and we can let kota_ and mattoliverau get on with their mornings 21:44:44 :P 21:44:51 thank you all for coming, and thank you for working on swift! 21:44:56 #endmeeting