Wednesday, 2024-03-20

opendevreviewASHWIN A NAIR proposed openstack/python-swiftclient master: support part-num in python swiftClient  https://review.opendev.org/c/openstack/python-swiftclient/+/90202000:47
opendevreviewASHWIN A NAIR proposed openstack/python-swiftclient master: support part-num in python swiftClient  https://review.opendev.org/c/openstack/python-swiftclient/+/90202000:50
opendevreviewASHWIN A NAIR proposed openstack/python-swiftclient master: support part-num in python swiftClient  https://review.opendev.org/c/openstack/python-swiftclient/+/90202000:51
opendevreviewMerged openstack/swift master: tests: Update CORS geckodriver  https://review.opendev.org/c/openstack/swift/+/91328503:48
opendevreviewJianjian Huo proposed openstack/swift master: common: add memcached based cooperative token mechanism.  https://review.opendev.org/c/openstack/swift/+/91373104:07
opendevreviewJianjian Huo proposed openstack/swift master: common: add memcached based cooperative token mechanism.  https://review.opendev.org/c/openstack/swift/+/89017404:12
opendevreviewJianjian Huo proposed openstack/swift master: common: add memcached based cooperative token mechanism.  https://review.opendev.org/c/openstack/swift/+/89017405:06
opendevreviewMatthew Oliver proposed openstack/swift master: Auto-sharding: first attempt at _elect_leader  https://review.opendev.org/c/openstack/swift/+/66703006:23
NicolasHi everyone, I have a question about the swift-object-expirer process, my assumption from the documentation is that one daemon should be enough for a given cluster however I found in a cluster that we inherited that multiple daemons were running, how are you managing this on your side ?09:36
opendevreviewAlistair Coles proposed openstack/swift feature/mpu: rename probe test_mixed_policy_mpu.py to test_mpu.py  https://review.opendev.org/c/openstack/swift/+/91375611:52
opendevreviewAlistair Coles proposed openstack/swift feature/mpu: First cut limited functionality MPU middleware  https://review.opendev.org/c/openstack/swift/+/91371214:45
opendevreviewMerged openstack/swift feature/mpu: rename probe test_mixed_policy_mpu.py to test_mpu.py  https://review.opendev.org/c/openstack/swift/+/91375615:43
timburkeNicolas, having just one expirer severely limits how quickly expired objects actually get unlinked disk in a large cluster17:41
timburkefortunately, it's mostly making network requests then waiting around for responses, so you can get pretty far with just one by cranking up concurrency. eventually, though, you'll notice your expirer queues taking longer and longer to clear, or your users will complain about expired objects still appearing in listings, or you'll notice that the disks are more full than it seems like they ought to be17:41
timburkeeventually, you'll find yourself wanting to use the process/processes config options to break up work across multiple nodes. we typically run one on all our object-server nodes, so it scales up as we scale up the amount of data we're storing17:43
opendevreviewJianjian Huo proposed openstack/swift master: common: add memcached based cooperative token mechanism.  https://review.opendev.org/c/openstack/swift/+/89017417:44
acolestimburke: apologies, I cannot make today's meeting and I'm also not around next week18:09
timburkeacoles, no worries -- i can't today, either ;-) another orthodontist appt18:34
acolesoh right, I remember - good luck !18:38
opendevreviewAlistair Coles proposed openstack/swift feature/mpu: object-server: include deleted metadata in PUT/DELETE response  https://review.opendev.org/c/openstack/swift/+/91383118:39
opendevreviewAlistair Coles proposed openstack/swift feature/mpu: proxy: Add list of backend response data to request environ  https://review.opendev.org/c/openstack/swift/+/91383218:39
opendevreviewAlistair Coles proposed openstack/swift feature/mpu: FakeSwift: support environ_updates  https://review.opendev.org/c/openstack/swift/+/91383318:39
opendevreviewAlistair Coles proposed openstack/swift feature/mpu: Add first cut MPU MW async cleanup markers  https://review.opendev.org/c/openstack/swift/+/91383418:39
opendevreviewAlistair Coles proposed openstack/swift feature/mpu: WIP add MPU cleanup auditor  https://review.opendev.org/c/openstack/swift/+/91383518:39
opendevreviewAlistair Coles proposed openstack/swift feature/mpu: WIP s3 mpu async cleanup  https://review.opendev.org/c/openstack/swift/+/91383618:39
opendevreviewTim Burke proposed openstack/swift master: recon-cron: Tolerate missing directories  https://review.opendev.org/c/openstack/swift/+/91384119:20
opendevreviewJianjian Huo proposed openstack/swift master: common: add memcached based cooperative token mechanism.  https://review.opendev.org/c/openstack/swift/+/89017420:38
opendevreviewJianjian Huo proposed openstack/swift master: proxy: use cooperative tokens to coalesce updating shard range requests into backend  https://review.opendev.org/c/openstack/swift/+/90896920:38
mattoliverkk, no acoles or timburke . Anyone else here for a meetings?21:01
mattoliver*meeting21:01
mattoliverIf not, it's just me :P Question, either I skip or just talk to myself.. the latter makes me crazy but gives us minutes.. so crazy matt it is! :P 21:03
mattoliver#startmeeting swift21:03
opendevmeetMeeting started Wed Mar 20 21:03:22 2024 UTC and is due to finish in 60 minutes.  The chair is mattoliver. Information about MeetBot at http://wiki.debian.org/MeetBot.21:03
opendevmeetUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.21:03
opendevmeetThe meeting name has been set to 'swift'21:03
mattoliverwho's here for the swift meeting? 21:03
mattolivero/ (might as make it feel as normal as possible :P) 21:03
mattoliverAs always the agenda is at21:04
mattoliver#link https://wiki.openstack.org/wiki/Meetings/Swift21:04
mattoliverAnd I did update the agenda for those reading along later. Although I forgot to add the first topic21:05
mattoliver#topic caracal release!21:05
mattoliver#link https://review.opendev.org/c/openstack/releases/+/91237121:06
patch-botpatch 912371 - releases - Release Swift for 2024.1 Caracal (MERGED) - 3 patch sets21:06
mattoliverIt's landed, so we have a release! And because we have no one else here I'll have to say it... it's the best swift release yet!21:06
mattoliverActually there were alot of awesome things in this release, so kudos to everyone who works on swift!21:07
mattoliverMoving on, and most of these I'll just mention and move on, because the relevent parties aren't here today to give us real status updates. But will still mention them as they seem to be the active things running atm in swift land.21:08
mattoliver#topic s3api: Fix handling of non-ascii access keys21:08
JayFI confirm best swift release ever, thanks mattoliver :)21:09
mattoliverWe came across this in our prod. Seems we missed a unicode conversion to wsgi string when doing the py3 migration all those years ago. And we only just discovered it. 21:09
mattoliverlol, thanks JayF21:09
mattoliverBut we have a fix21:09
mattoliver#link  https://review.opendev.org/c/openstack/swift/+/91372321:09
patch-botpatch 913723 - swift - s3api: Fix handling of non-ascii access keys - 1 patch set21:09
mattoliverIt's caused if someone has a non-asci character in their aws key. 21:10
mattoliverWe had tests we thought covered this.. and looks like we did. But our fake app in the tests wasn't a good enough fake :( 21:11
mattoliverAnyway.. just a heads up, I expect that to land before the next meeting.21:11
mattoliver#topic expirer grace period21:11
mattoliverThis is an older topic from the last meeting, but left it in. There is active work going on it. We have an intern working on it atm, and coming along nice. There is current discussions around maybe changing the name a little. Basically it gives us an optional grace period when expiring objects, so there can be like a soft delete.21:13
mattoliverone of our users had a need for this. And it's optional. 21:14
mattoliver#link  https://review.opendev.org/c/openstack/swift/+/87480621:14
patch-botpatch 874806 - swift - expirer: per account and container grace period - 17 patch sets21:14
mattoliver#link  https://review.opendev.org/c/openstack/swift/+/87471021:15
patch-botpatch 874710 - swift - support x-open-expired header for expired objects - 36 patch sets21:15
mattoliverI'll try and remember to link first :P 21:15
mattoliver#topic cooperative tokens21:15
mattoliver#link  https://review.opendev.org/c/openstack/swift/+/89017421:15
patch-botpatch 890174 - swift - common: add memcached based cooperative token mech... - 14 patch sets21:15
mattoliver#link https://review.opendev.org/c/openstack/swift/+/90896921:15
patch-botpatch 908969 - swift - proxy: use cooperative tokens to coalesce updating... - 10 patch sets21:15
mattoliverJianjian is leading the charge here. And it's really interesting and awesome work.21:16
mattoliverFor those who have been running swift for a while, or come to the last few PTGs we'd talked about a thundering herd problem, when there is alot of updates coming to one sharded container and the roots shard-ranges have ttl'ed out of cache.21:17
indianwhocodeso/21:17
mattoliverWell this uses a token in the cache as a lock that updaters can grab. If they get it then they can go to the back end and get the latest set of shardranges and then they'll place them back in cache. It's a modified version of whats called a ghetto lock. A slightly more concurrent version that better supports a distributed system like swift21:19
mattoliverHey indianwhocodes just you and me, so was mostly talking to myself.21:19
mattoliverbut not anymore! now I don't look as crazy :P 21:19
indianwhocodesya scrolled up, good so far!21:20
indianwhocodesI have currently nothing ready for reviews yet21:20
mattoliverAnyway, the work is awesome. I hope to get in an review the chain.21:20
mattoliverthanks :P 21:20
mattoliverok next topic21:21
mattoliver#topic Feature/MPU feature branch21:21
mattoliverSo we've created a feature branch! We haven't done one of those in Swift since container-sharding. 21:21
mattoliverAnd it's because we're working, finally, on something we've been talking about for years. We used to call it ALO, or atomic large object. Ie, a large object where users can't see the segments so we can have a 1:1 connection. 21:22
mattoliverWe'll follow the MPU api somewhat. No idea what the name will end up being, swift MPU? So this will go with our DLO and SLO. And our s3api will eventually just use them. And no more weird edgecases of orphaned segments!21:24
indianwhocodessounds promising!21:24
mattoliveracoles: is leading the charge. No doubt if he was here you'd get a better explanation then I can give :P21:24
mattoliverIt does!21:25
mattoliver#topic aws-chunked transfers21:25
mattolivertimburke: would be better at talking about these. And making progress. 21:25
mattoliverI did look at the patches in the past, I should do so again!21:26
mattoliver#link  https://review.opendev.org/c/openstack/swift/+/90904921:26
patch-botpatch 909049 - swift - s3api: Improve checksum-mismatch detection - 5 patch sets21:26
mattoliver#link  https://review.opendev.org/c/openstack/swift/+/90980021:26
patch-botpatch 909800 - swift - utils: Add crc32c function - 5 patch sets21:26
mattoliver#link https://review.opendev.org/c/openstack/swift/+/90980121:26
patch-botpatch 909801 - swift - s3api: Add support for additional checksums - 6 patch sets21:26
indianwhocodesI have been blackbox testing tim's patch with mountpoint-s3 benchmarks21:27
mattoliverI attempting to recreate the probetest failure of that ^ one.21:27
mattoliveroh nice21:27
mattoliveroh I forgot more links21:27
mattoliver#link https://review.opendev.org/c/openstack/swift/+/90980221:27
patch-botpatch 909802 - swift - WIP: s3api: Additional checksums for MPUs - 6 patch sets21:27
mattoliver#link  https://review.opendev.org/c/openstack/swift/+/83675521:27
patch-botpatch 836755 - swift - Add support of Sigv4-streaming - 15 patch sets21:27
mattoliverman that timburke is a machine!21:28
mattoliveryeah we need these aws-chucked transfers for mountpoint-s3 don't we. 21:28
indianwhocodesagreed.21:28
mattoliverSo indianwhocodes your a good man to test and review these :) 21:28
indianwhocodesi am looking into adding more s3api cross-compat tests to  p 90980121:29
patch-bothttps://review.opendev.org/c/openstack/swift/+/909801 - swift - s3api: Add support for additional checksums - 6 patch sets21:29
mattoliveroh nice! 21:30
mattoliverIf/when you have a patch ready, let's add it to the list the patches then :) 21:30
mattoliverLet's move on.. almost at the end of the agenda :) I don't you we're busy!21:31
mattoliver#topic drive-full-checker21:31
mattoliver#link https://review.opendev.org/c/openstack/swift/+/90752321:31
patch-botpatch 907523 - swift - drive-full-checker - 34 patch sets21:31
mattoliverI think this is awesome, and we want to get this landed at some point. One of our SRE is interested in testing it. But downstream stuff got in the way this last week or so. Looks like timburke's had a play.  21:32
mattoliverI hope to too at somepoint. 21:33
mattoliverMaybe we can play with it in a VSAIO at least. 21:33
mattoliverHopefully I can trick sre into looking this week or so :P 21:33
mattoliver#topic s3api and slo Partnum support21:34
mattoliverSo the swift side chain landed!21:34
mattoliverNice work indianwhocodes !!21:34
indianwhocodesfinally.21:34
mattoliverNow we can add support to python-swiftclient!21:34
mattoliver#link https://review.opendev.org/c/openstack/python-swiftclient/+/90202021:35
patch-botpatch 902020 - python-swiftclient - support part-num in python swiftClient - 15 patch sets21:35
indianwhocodesi intend to play with the drive-full checker too if it goes ahead with mountpoint they will go hand in hand as major wins21:35
mattoliverOh yeah, great point! 21:35
mattolivernice21:35
indianwhocodesreason i say that is that it took me just 2 benchmarking jobs to fill up my vsaio, so just the amount of data we have in prod will have a significant impact!!!21:36
mattoliverWell I'll try and take a look at the swiftclient partnum patch as soon as I can so we can get it all squared away. 21:36
indianwhocodessounds good.21:36
mattoliverHey it's a jianjian , too bad he missed me talking about his awesome cooperative  token stuff, he's going to have to read the logs :P 21:37
jianjiansorry for being late21:38
jianjianthat's awesome! yes, I will read the logs. :-P21:38
mattoliverindianwhocodes: you can increase your vsaio disk size if need be. But maybe easily filling them is what we need to testing the drive-full-checker anyway :P 21:38
indianwhocodesexactly.21:38
mattoliver#topic Drop support for liberasurecode<1.4.021:39
mattoliverLast topic I have on the agenda before I open the floor.21:39
mattoliverThis is from last meeting, and I think yeah sounds good.. but I guess I should actaully go review it :P 21:40
mattoliverI see jianjian did. Nice21:40
indianwhocodesi just did as well, lol.21:40
mattoliveroh nice21:40
mattoliveroh you did to, 8 mins ago! 21:41
mattoliverWell hopefully that means it'll land over the next week :)21:41
mattoliverThat's all the topics I gathered  (over the 10 mins before this meeting) :P 21:41
mattoliverSo 21:41
jianjianyeah, looked good to me, the new liberasurecode also is able to replace old .so library with static functions, which is nice21:41
mattoliveroh cool21:42
mattoliver#topic open floor21:42
mattoliverI've been blowing dust off 3 year old patches I had for a better auto-sharding leader-election algorithm. Still fairly basic, but better then what we have:21:43
mattoliver#link https://review.opendev.org/c/openstack/swift/+/66703021:44
patch-botpatch 667030 - swift - Auto-sharding: first attempt at _elect_leader - 10 patch sets21:44
mattoliverThat's basically a rebase and squash and an attempt to address some comments from 3 years ago.21:44
jianjianwow, leader election... that's cool!21:44
mattoliverWell it's something we always had planned. And we purposely picked a overly simple one to land sharding21:45
mattoliverBut have always told people not to use auto-sharding because it isn't production ready. But we do use auto-sharding in tests21:45
jianjianwas there a design doc? or mostly it's described in the commit message21:46
mattoliverAuto-sharding basically means the sharder takes responsiblity not just for sharding but identifying, scanning and initiate the scanning too. 21:46
mattoliveryeah there is, and there's been alot of docs over the years.21:47
mattoliverI've been trying to gather them all up. I'll find the current link21:47
indianwhocodesI have tried it before on a personal swift cluster21:47
jianjianthanks. I guess only leader can kick off a sharding with auto-sharding, what happen if leader node dies? will another node stands up to be a new leader?21:49
mattoliverthese are the problems. 21:49
mattoliver#link https://docs.google.com/document/d/1VSpmPcEt1NDhDLb8Btvfl6BwnaeGboONvltSM-ZHUVQ/edit?usp=sharing21:50
mattoliver^ that I think only works for nvidians, but I'll make it available to everyone when I get the chance21:50
mattoliverThere are alot of leader election options to choose. But the first version is an increment of the existing one. 21:51
jianjian👍21:51
mattoliverExisting one is super simple.. if your index 0 for the container (partition) then your the leader..21:51
mattoliverSo great for testing and simple, but doesn't actaully use any real ellection and its super easy to get 2 who think they're the leader because of rebalances and eventual consistency21:52
mattoliverthis newer version takes ring versions into account and only listens and gets a qourum of votes from the latest ring. Meaning handoffs (old primaries now don't get a say). 21:53
mattoliverAnd currently I think there is a double check. Am I leader, scan, am I still the leader, write ranges into shardranges and replicate. 21:54
mattoliverthrow away the work if I'm not. 21:54
mattoliverthough maybe thats inefficent. But taking the less split brainy approach21:55
jianjianso a shard leader could stop in the middle the sharding during rebalancing, and then cancel its work21:55
mattoliveranther approach is to elect quicker and just get better at dealing and recovering from the split-brains. But in realilty we need to solve this anyway, because it'll happen21:56
mattolivernot in the middle of sharding.. only in scanning for shardranges. 21:56
mattoliverOnce a leader has scanned and inserted the shardranges. Sharding then happens as per normal.21:57
mattoliverbut yeah, atm21:57
mattoliverI am thinking of also adding a memcache sentinal lock or something21:57
mattoliveras an enhancement. 21:57
mattoliverOr maybe we just need a branc new approach :) 21:58
mattoliverlike I said, these are from years ago and I'm relearning what past Matt was thinking :P 21:58
jianjianlol21:58
mattoliverDream is one day, we have auto-sharding enabled by default in swift. And we never need to think about it. 21:59
jianjianthat'll be cool21:59
mattoliverAnd for us downstream, we deprecate it from the controller21:59
mattoliverAnyway, we're at time22:00
jianjianI also feel we need shard shrinking as well regarding to the topic of sharding22:00
jianjianyeah22:00
mattoliverYeah, there is a shrinking edge case that is blocking out auto-shrinking atm too, which is another blocker. So that also needs to be solved!22:01
mattoliverThanks for coming and thanks for working on swift!22:01
mattoliver#endmeeting22:01
opendevmeetMeeting ended Wed Mar 20 22:01:15 2024 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)22:01
opendevmeetMinutes:        https://meetings.opendev.org/meetings/swift/2024/swift.2024-03-20-21.03.html22:01
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/swift/2024/swift.2024-03-20-21.03.txt22:01
opendevmeetLog:            https://meetings.opendev.org/meetings/swift/2024/swift.2024-03-20-21.03.log.html22:01
mattoliverjianjian: That's why I caeed that doc, the path to auto-sharding ;) 22:01
jianjiangood summary in the doc, thanks for sharing it22:06
opendevreviewAnish Kachinthaya proposed openstack/swift master: expirer: per account and container grace period  https://review.opendev.org/c/openstack/swift/+/87480622:18
timburkethanks for running the meeting, mattoliver!22:55
mattolivernps23:20

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