Wednesday, 2025-01-22

opendevreviewAlistair Coles proposed openstack/swift master: s3api: Add support for additional checksums  https://review.opendev.org/c/openstack/swift/+/90980111:05
opendevreviewAlistair Coles proposed openstack/swift master: s3api: Additional checksums for MPUs  https://review.opendev.org/c/openstack/swift/+/90980211:05
opendevreviewAlistair Coles proposed openstack/swift master: Add support of Sigv4-streaming  https://review.opendev.org/c/openstack/swift/+/83675514:43
opendevreviewClay Gerrard proposed openstack/swift master: sq: add test for parse_error  https://review.opendev.org/c/openstack/swift/+/93982816:59
opendevreviewTim Burke proposed openstack/swift master: splice: Stop dipping down to C get MD5 sockets  https://review.opendev.org/c/openstack/swift/+/93991220:54
timburke#startmeeting swift21:00
opendevmeetMeeting started Wed Jan 22 21:00:34 2025 UTC and is due to finish in 60 minutes.  The chair is timburke. Information about MeetBot at http://wiki.debian.org/MeetBot.21:00
opendevmeetUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.21:00
opendevmeetThe meeting name has been set to 'swift'21:00
timburkewho's here for the swift meeting?21:00
rcmgleiteI am!21:00
mattolivero/21:01
* zaitcev peeks in21:02
timburkeso i've had a crazy weekend due to moving houses and haven't really had a chance to update the agenda (or think much about what i'd want to call out during this meeting in general)21:02
mattolivernps, we'll wing it :) 21:03
timburkebut i *do* know that there are a couple items of work that are seeing renewed interest: ring v2, and the aws-chunked chain21:03
rcmgleiteIs there documentation about what ring v2 is? (sorry, new here)21:04
timburkeoh, and p 853697 merged, so a whole bunch of stuff has needed rebasing!21:04
timburkercmgleite, yes! it's included in the patch: https://review.opendev.org/c/openstack/swift/+/83426121:05
mattoliveryup, both are important for us at least. the latter is important for any s3api users with the latest boto sdk updates21:05
timburkeoh, right, patch-bot is still packed up... i've gotta bring some hardware back online so i've got a bouncer and whatnot...21:05
mattoliverringv2 is a new serialization format for rings. The old had some issues, but there are aslo cool new imporovements like can store more devices in the ring (Which is what we really need). 21:06
mattoliveroh, you're running patchbot yourselve timburke lol21:06
mattoliver*yourself21:06
timburkethe check job also published a preview sight of the new docs; i think https://df7f3296a8ac461f2ab3-3dd5e628e5b815e2df15fc764c3bb478.ssl.cf2.rackcdn.com/834261/22/check/openstack-tox-docs/91194ff/docs/overview_ring_format.html#ring-v2 is the interesting bit21:07
timburkebut yeah, mattoliver's right -- the big thing driving the renewed interest is going beyond the 64k device limit rings currently have21:09
timburkercmgleite, welcome! what brings you here? any particular part of swift you're interested in?21:09
rcmgleiteHey! I'm an ex s3 engineer working for a public cloud in a brazilian company. Our object storage offer runs on swift (still yoga for now)21:10
rcmgleiteI'm here to learn and if possible ask lots of questions!21:11
mattoliveroh nice!! welcome! 21:11
jianjiannice! o/21:11
opendevreviewMerged openstack/swift master: docs: Fix version call-out for stale_worker_timeout  https://review.opendev.org/c/openstack/swift/+/93950121:11
jianjianwelcome21:11
rcmgleiteThank you!21:11
rcmgleiteCurrently very interested in the 64k limit change of the ring (also a problem for us). and we've been working on some patches of our own that we would like to push upstream if it makes sense to you21:12
rcmgleiteThings like object locking, middlewares that help decouple keystone from swift etc..21:13
timburkeoh, cool! welcome! i seem to remember notmyname talking about at least one brazilian company with a pretty large swift install... 21:13
rcmgleitethat's us for sure! Rafael (also from my company) has been joining this meeting for a while now21:13
mattolivercool, more people working upstream the better! then we can all benefit from each others work21:14
rcmgleite@mattoliver exactly!21:15
rcmgleiteDo you folks mind If I ask a couple of questions? Not sure how these meetings usually go21:15
timburkenot at all, go for it! you're also welcome to ask questions any time, not just during meetings :-)21:16
zaitcevrcmgleite: https://gist.github.com/tipabu/435fc63f1aa76d6b346956571a39366521:16
rcmgleiteWe are working on upgrading from yoga forward.. our first step is Zed. Anything we should be worried about with these upgrades?21:16
rcmgleiteBy reading the commits and changelog it doesn't look like so.. but wanted to be sure21:17
timburkeno, i wouldn't expect. and fwiw, i wouldn't hesitate to upgrade swift straight from yoga to 2.34.0 (or even master) -- though you might have your own reasons for moving more slowly21:18
rcmgleiteI think I tend to be overly paranoid... And we have a bunch of changes to swift that we never pushed upstream that get very annoying to merge when pulling new changes..21:19
timburkeif possible, i'd upgrade object, then container, then account, then proxy21:19
timburkeyeah, fair enough. long-lived forks are no fun21:19
rcmgleiteYeah we are trying to catch up and send proper proposals so that we don't keep our fork anymore..21:20
mattoliverthats why we try to push as much upstream as possible.. less maintence burden21:20
mattoliver\o/21:20
rcmgleiteis there a rational for having to choose a specific order to upgrade?21:20
jianjianI remember I have working on a few expirer related changes recently, and one of the goal is to be order-agnostic for the upgrade process. I think probably Tim wants to be cautious in general.21:23
timburkeservers are kept backward compatible with older clients (at least, as best we can, and to the extent that we don't, we treat it as a bug and fix it)21:24
timburkeso older proxy should always be able to talk to newer backend21:24
timburkebut newer proxy might want to use features only available with newer backend21:24
mattoliveralot of the smarts and features are in the proxy, they can talk to older storage nodes. But it's just best practice as Jian says. And meansyou can use new features as sson as the proxies are upgraded :)  21:24
rcmgleiteoh interesting. that makes sense! Thanks for the context21:25
timburkethe exact order of the backend upgrades is less important, but we usually try to think about them in that order (iirc)21:26
timburkei think for the most part it's less of a concern these days; it's been a while since we added a bit new protocol change like sysmeta or listing overrides...21:27
rcmgleiteSecond question: we want to update a bit how ranged gets work -> ie: we want storage nodes to also receive a range and be able to fetch only the exact amount of data needed from disk. I wanted to share the design with you and have proper discussions before we go full on implementing it. What's the best way to do this? Do you discuss in PR direclty? Or have a design session?21:27
rcmgleiteGreat! Thanks guys!21:27
timburkercmgleite, that should already be happening -- what've you been seeing?21:28
rcmgleite(it's more of a general question about how designs are done within this group/project)21:28
mattoliverWe tend to have a design doc in any form you like, we put it on the ideas page (normally), and can discuss it at a meeting or PTG. Then break out into more meetings or a something as required. It's pretty flexible. 21:28
rcmgleiteWe just started discussing about this - but since we don't have internal checksums per range, My assumption is that you have to read the entire content from disk to be able to apply integrity checks on whatever storage nodes are sending back21:29
mattoliver#link https://wiki.openstack.org/wiki/Swift/ideas21:29
rcmgleiteThanks @mattoliver!21:29
rcmgleiteI might have missed how you do it though21:30
mattoliverbasically want the idea (or more flushed idea/design doc) that people can read / comment on. and then we can take it from there.21:30
rcmgleiteCool! That makes sense!21:30
mattoliverif its a huge feature we sometime use a feature branch in git upstream to speed up development21:30
mattoliverstorage_polices, sharding and currently a better MPU (then slo) is currrently being worked on in this manner21:31
rcmgleiteThat's interesting! I can find those by looking at branches on the github repo?21:32
mattoliveryeah, but your best place to see progress is on gerrit21:32
rcmgleitehm, ok!21:32
mattoliverI use this gerrit dashboard (sorry about the big link):21:33
mattoliverhttps://review.opendev.org/dashboard/?foreach=%28project%3Aopenstack%2Fswift+OR+project%3Aopenstack%2Fpython%2Dswiftclient+OR+project%3Aopenstack%2Fswift%2Dbench+OR+project%3Aopenstack%2Fpyeclib+OR+project%3Aopenstack%2Fliberasurecode%29+status%3Aopen+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3ACode%2DReview%3C%3D%2D2+is%3Amergeable&title=Swift+Review+Dashboard&Starred+%28by+myself%29=%28is%3Astarred%29+AND+status%3Aopen&Small+things=21:33
mattoliverdelta%3A%3C%3D25+limit%3A10+%28NOT+label%3ACode%2DReview%2D1%2Cswift%2Dcore+OR+%28label%3ACode%2DReview%2D1%2Cswiftclient%2Dcore+AND+project%3Aopenstack%2Fpython%2Dswiftclient%29%29&Needs+Final+Approval+%28to+land+on+master%29=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+owner%3Aself+label%3ACode%2DReview%3E%3D2+%28NOT+label%3ACode%2DReview%2D1%2Cswift%2Dcore+OR+%28label%3ACode%2DReview%2D1%2Cswiftclient%2Dcore+AND+21:33
mattoliverproject%3Aopenstack%2Fpython%2Dswiftclient%29%29+branch%3Amaster&Open+Backport+Proposals=branch%3A%5Estable%2F.%2A+status%3Aopen&Feature+Branches=branch%3A%5Efeature%2F.%2A+status%3Aopen+NOT+branch%3A%5Efeature%2Fhummingbird&Open+patches=NOT+label%3AWorkflow%3E%3D1+NOT+label%3ACode%2DReview%2D1%2Cswift%2Dcore+NOT+label%3ACode%2DReview%3E%3D2+branch%3Amaster21:33
mattoliverthats an old one. I thnk tim has newer probably better ones :P 21:35
timburkenote that most of the feature branches on the github repo are basically historical artifacts -- the only active feature branch today is feature/mpu21:35
zaitcevI save those URLs in something like this: https://slasti.zaitcev.us/zaitcev/swift/21:36
zaitcevWait21:36
zaitcevhttp://slasti.zaitcev.us/zaitcev/swift/21:36
zaitcevPrivate CA cert, sorry.21:36
rcmgleitegreat, thx! Anyone else want to jump in before I ask a last question?21:37
mattolivernah go ahead21:37
rcmgleiteIs there any fork/initiatives that you know of that are related to strong consistency?21:38
rcmgleiteI know swift is eventually consistent by design... so not too hopeful21:38
rcmgleitebut it's something we've been seeing the need for more and more...21:38
timburkeyeah, we're seeing the need more and more, too... i don't recall any forks pursuing it, though21:40
mattolivernot that I'm aware of. At nvidia we've been thinking about what it might look like to get more strongly consistent in container listings for example. But the cost of stong consistency at scale is latency. Thought maybe we need to have container policies where you might be able to opt-in for a different consistency model. but more just spitballing still21:41
mattolivercould be a great topic at a future PTGs, when we an all brainstorm together.21:41
zaitcevCeph RGW is consistent. But I don't like that code of it. I worked on it on and off. It's in an-hoc C++, everything is super random. Classes, indexes...21:42
zaitcevMinio maybe okay but it has licensing issues.21:42
mattoliveryeah, I worked on ceph RGW and yeah had latency issues because of metadata strong consistency (when I worked on it)21:42
rcmgleiteIt's great to hear that the need for that is also there for you.. we might bring up some ideas soon!21:43
mattoliveracoles: has some bucket inventory code we run downstream to get a more consistant although historic view of bucket listings. 21:43
mattoliverbut yeah, more we can all work together on problems we face the better we can solve them and make swift better :)21:44
jianjian@rcmgleite, what kind of consistency you are interested in, listing or obj overwrite?21:45
rcmgleiteboth. listing can be annoying for analytics workloads but overwrites are also bad for things like bucket policy updates, locking updates etc..21:47
rcmgleiteit's something customers don't expect - that you say: Lock my file for deletions, they get a 200 and the next call they do is a delete and their object is gone21:47
rcmgleiteit can totally be something we could improve in our implementation of locking (which we very much want to push upstream)21:48
rcmgleitebut it's one of the many cases where eventual consistency is biting us21:48
timburkeyup, makes sense21:49
mattoliverrcmgleite: I look forward to digging into some of these issues and seeing what you all have done! 21:50
rcmgleiteYup! let's do that! thanks for all the information folks! really helpful! 21:51
timburkeall right, anything else we want to discuss?21:52
jianjianlook forward to seeing patches from you, @rcmgleite21:52
mattoliverAs for ringv2 work, I've been pushing it down the road some more, got 2 more small patches. One to save 2byte minimum forr dev in builders21:52
timburkei saw, thanks mattoliver!21:53
mattoliverand I to add a `swift-ring-builder <ring> version` command, so we have an easy way to confirm ring versions, seeing as we haven't changed the file name semantics. 21:53
timburkeyeah, that might be better than what i was doing over in https://review.opendev.org/c/openstack/swift/+/85723421:54
mattoliverjust playing with the code in my vSAIO and trying to get used to using it day 2 day. 21:54
timburkei saw https://github.com/NVIDIA/vagrant-swift-all-in-one/pull/170 too :-)21:54
mattoliveroh yeah, ring-info, so a new utility, could also work. 21:54
mattoliveroh yeah, if you actaully want to build v2 rings, it would be nice for vSAIO to support it.21:55
mattoliveralthough that only works if your running the branch because before that --format-version isn't a valid option. 21:56
mattoliverring_version=1 could just not write the --format-version option I guess.. that'll work until we change the default version in the future :hmm:21:57
timburkei suppose i could try to pull that out as another patch in front -- and justify it as "well, you want to be able to test loading v0 rings, don't you?" :P21:57
mattoliverloll, true.. but surely we're just going to land ringv2 soon right ;) 21:58
timburkei was so sad when i noticed the "Created 4 years ago" when zaitcev linked to my gist...21:59
timburkeall right, we're about at time21:59
zaitcevOur velocity is a bit low.21:59
timburkethank you all for coming, and thank you for working on swift!21:59
timburke#endmeeting21:59
opendevmeetMeeting ended Wed Jan 22 21:59:56 2025 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)21:59
opendevmeetMinutes:        https://meetings.opendev.org/meetings/swift/2025/swift.2025-01-22-21.00.html21:59
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/swift/2025/swift.2025-01-22-21.00.txt21:59
opendevmeetLog:            https://meetings.opendev.org/meetings/swift/2025/swift.2025-01-22-21.00.log.html21:59
mattoliverwell we were good to land I think almost a year or 2 ago.. and then things just stalled.22:00
mattoliverthanks timburke  and everyone! nice to meet you rcmgleite 22:00
timburkelow velocity can have some value -- i get a little nervous sometimes about how much movement there's been in eventlet lately22:01
rcmgleiteThanks folks! see u next week!22:04
rcmgleiteNow that I'm not intruding on the meeting - I have a question about ranged gets that I was unable to find in code - given that we have only the md5 of the full object, how do we validate integrity of the bytes from a ranged get at any of the swift layers? 22:05
zaitcevI don't think you can. But auditor re-validates them constantly. So it should be okay with a certain probability. All that's left is the transmission over the network.22:07
rcmgleiteyeah that's what I thought..I've been thinking about adding a block framing layer that would include checksums on every X bytes of the plain text data.. Will create a doc a run that by you folks later22:10
rcmgleiteThanks @zaitcev22:11
zaitcevDoesn't SLO do it already?22:11
zaitcevUnless you mean page-sized segments.22:12
zaitcevttyl22:12
-opendevstatus- NOTICE: The Gerrit service on review.opendev.org will be offline momentarily for a restart to put some database compaction config changes into effect, and will return within a few minutes22:55
timburkercmgleite, on ranged GETs -- it took me a bit to hunt down (i'd forgotten how it works myself), but the significant bit is around https://github.com/openstack/swift/blob/master/swift/common/swob.py#L1385-L1423 -- when we've got ranges, the object-server will find those app_iter_range and app_iter_ranges functions on the diskfile reader, allowing it to seek appropriately23:13
timburkethat required a lot more digging than i expected -- i really *wanted* the relationship to be fairly obvious around https://github.com/openstack/swift/blob/master/swift/obj/server.py#L1127-L1136 but it's not :-/23:15

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