Wednesday, 2024-06-26

opendevreviewMerged openstack/swift stable/2024.1: CI: Move off CentOS 8  https://review.opendev.org/c/openstack/swift/+/92276201:07
opendevreviewMerged openstack/swift stable/2024.1: [stable-only] CI: Remove some old rolling-upgrade jobs  https://review.opendev.org/c/openstack/swift/+/92269101:07
opendevreviewMerged openstack/swift master: Support tox4  https://review.opendev.org/c/openstack/swift/+/88164201:32
opendevreviewMerged openstack/swift stable/2023.2: CI: Move off CentOS 8  https://review.opendev.org/c/openstack/swift/+/92277403:59
*** rwmtinkywinky7 is now known as rwmtinkywinky10:52
opendevreviewAlistair Coles proposed openstack/swift master: proxy-server: log correct path when listing parsing fails  https://review.opendev.org/c/openstack/swift/+/92271511:04
opendevreviewMd Azmain Adib Pahlowan proposed openstack/swift master: Periodic reaper recon dump showing current progress  https://review.opendev.org/c/openstack/swift/+/92283114:35
opendevreviewMd Azmain Adib Pahlowan proposed openstack/swift master: Periodic reaper recon dump showing current progress  https://review.opendev.org/c/openstack/swift/+/92283314:41
opendevreviewMerged openstack/swift master: proxy-server: log correct path when listing parsing fails  https://review.opendev.org/c/openstack/swift/+/92271518:10
opendevreviewShreeya Deshpande proposed openstack/swift master: class LoggerStatsdFacade  https://review.opendev.org/c/openstack/swift/+/91548319:13
opendevreviewTim Burke proposed openstack/swift master: Use entry_points for swift-init  https://review.opendev.org/c/openstack/swift/+/92287019:22
opendevreviewTim Burke proposed openstack/swift master: Pull swift-dispersion-populate to its own module  https://review.opendev.org/c/openstack/swift/+/92287119:22
opendevreviewTim Burke proposed openstack/swift master: Pull swift-*-info scripts into swift.cli.info  https://review.opendev.org/c/openstack/swift/+/92287219:22
opendevreviewShreeya Deshpande proposed openstack/swift master: statsd: deprecate log_ prefix for options  https://review.opendev.org/c/openstack/swift/+/92251819:38
opendevreviewShreeya Deshpande proposed openstack/swift master: statsd: deprecate log_ prefix for options  https://review.opendev.org/c/openstack/swift/+/92251819:45
opendevreviewTim Burke proposed openstack/swift stable/2023.1: [stable-only] CI: Remove some old rolling-upgrade jobs  https://review.opendev.org/c/openstack/swift/+/92269319:54
opendevreviewTim Burke proposed openstack/swift stable/2023.1: CI: Move off CentOS 8  https://review.opendev.org/c/openstack/swift/+/92287919:54
opendevreviewMerged openstack/swift stable/2023.2: [stable-only] CI: Remove some old rolling-upgrade jobs  https://review.opendev.org/c/openstack/swift/+/92269220:50
kotagood morning20:55
fulecorafaGood evening20:55
timburkeo/20:57
opendevreviewYan Xiao proposed openstack/swift master: stats: API for native labeled metrics  https://review.opendev.org/c/openstack/swift/+/90988220:59
timburke#startmeeting swift21:00
opendevmeetMeeting started Wed Jun 26 21:00:01 2024 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
fulecorafaI am o/21:00
kotahi21:00
acoleso/21:01
timburkesorry, i feel like it's been a while since i held the regular meeting21:02
timburkebut i did actually update the agenda this time!21:02
timburke#link https://wiki.openstack.org/wiki/Meetings/Swift21:02
jianjiano/21:02
timburkefirst up, a couple recently-reported bugs21:03
timburke#topic account-reaper and sharded containers21:03
timburkeit looks like they don't work!21:03
timburke#link https://bugs.launchpad.net/swift/+bug/207039721:03
patch-botBug #2070397 - Account reaper do not reap sharded containers (New)21:03
timburkesince the reaper is relying on direct_client instead of internal_client, it gets no objects to delete, tries to delete the container, and gets back a 409 -- next cycle, same deal21:04
timburkethis was also brought up on the mailing list, as zaitcev helpfully pointed out to me yesterday21:05
timburke#link https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/thread/KOJS5G5W24PARPLNQS2D5A6M5F3JRM7V/21:06
zaitcevThat's because I went through exactly this thing with the dark data watcher.21:06
zaitcevSo a simple thing is to copy the code from the watcher and be done.21:07
zaitcevMaybe some useful refactoring could be done... Or switch both of them to another API... I dunno.21:07
zaitcevIt took so long to engage Alistair's attention on this, that I would prefer just clone the code and forget about it.21:08
timburkeyeah, i was wondering if it might make sense to switch to using internal_client... i'm trying to remember why we didn't go that route for the watcher21:08
timburkei think there'd be some complication around avoiding the 410, but surely we could get around that by adding some x-backend-... header flag21:09
zaitcevBecause watcher runs in an object auditor, and internal_client is a part of the proxy. It needs a pipeline set up, for one. IIRC.21:09
timburkehmm. true enough -- and having a pipeline leaves more room for misconfiguration21:10
timburkezaitcev, had you taken a look at the linked patch yet? i haven't, i'll admit21:10
acolesso is the root cause that the reaper uses direct client to list objects?21:11
zaitcevNot really, sorry. It looked faithfully cargo-culted from the watcher.21:11
timburkeacoles, yeah, afaik21:12
acolesI'm wondering, even if all the objects are deleted from all the shards, will the container delete succeed, until all the shards have been shrunk away??21:12
zaitcevuh-oh21:13
acolesisn't there this weird property that a container with shards isn't "empty"? although IIRC we haven't several definitions of "empty"21:13
timburkehrm... i thought we had some special handling when all shards report zero objects, but i don't remember for certain...21:14
timburkea good first step might be for one of us to write a failing probe test, then try the linked patch, and iterate from there21:14
acolesI just remember that we have recurring warnings in prod for containers that cannot be reclaimed because they have shards...but maybe there is a workaround for reaper 🤔21:14
acolesyeah a probe test is definitely a good idea21:15
timburkethat does sound familiar...21:15
timburkecan anyone volunteer to get a probe test together?21:15
zaitcevThe v-word scares me. I'm up to my chest in Cinder nowadays.21:16
timburkehehe -- all right, i'll put it on my to-do list and hopefully i can get to it this week21:17
acoleszaitcev: that still leaves your brain available ;-)21:17
timburkenext up21:17
timburke#topic busted docker image21:17
timburke#link https://bugs.launchpad.net/swift/+bug/207002921:17
patch-botBug #2070029 - swift-docker: saio docker alpine uncorrect (New)21:17
timburkesounds like our published docker image isn't actually working correctly21:18
timburkei guess my first question, though, is how much we really want to commit to maintaining it? it seems like a nice-to-have, but we surely ought to have more validation of the image if we're properly maintaining it21:19
acolesdoes any core  dev use it? AFAIK vSAIO is the recommended dev environment21:20
zaitcevI don't but it's because we ship our own images in RHOSP. I don't know how to build them, honestly.21:21
jianjianI just got to know there is a "saio docker" env21:21
fulecorafaI personally use it when developping here. I noticed the docker image was failing, but I though it was some mistake in my config here21:21
timburkei've got a little single-disk cluster i use it for, but i don't even remember the last time i updated it21:22
fulecorafaI did try to rebuild it using a lxc environment by hand and it still didn't work21:23
timburkethanks for the data point fulecorafa -- fwiw, it seems like swift must not have gotten installed correctly, judging by the bug report21:24
timburkei'll try to dig into it some more -- looks like i was the last one to touch it, in p 85336221:25
patch-bothttps://review.opendev.org/c/openstack/swift/+/853362 - swift - Fix docker image building (MERGED) - 1 patch set21:25
acolesfulecorafa: you may want to try https://github.com/NVIDIA/vagrant-swift-all-in-one which many of use daily for dev21:25
timburkenext up21:25
acolesFWIW I did have a go at adding a docker target for vSAIO, almost got it working21:25
timburke#topic log_ prefix for statsd client configs21:26
timburke#link https://review.opendev.org/c/openstack/swift/+/92251821:26
patch-botpatch 922518 - swift - statsd: deprecate log_ prefix for options - 3 patch sets21:26
timburkethis was split out of https://review.opendev.org/c/openstack/swift/+/919444 and the general desire to separate logging and stats21:26
patch-botpatch 919444 - swift - Add get_statsd_client function (MERGED) - 13 patch sets21:26
timburkebut when i got into proxy-logging, i was reminded of how we already have (at least?) two ways of spelling these configs, and i wanted to make sure that we had some consensus to make a recommendation for how the configs *should* be specified going forward21:28
timburkewe already have things like log_statsd_host and access_log_statsd_host, and while i like the idea of moving toward just statsd_host or access_statsd_host, i don't really want to add support for *both*21:29
timburkei want to say that the access_ prefix got added because of confusion over how to do config overrides with PasteDeploy21:32
timburkedoes anybody have input on what should be our preferred option name? or maybe this is all a giant yak-shave that doesn't really have any hope of getting off the ground until we can get rid of PasteDeploy and make config overrides sensible?21:34
acolescan we think of the differentiating prefix being 'access_log_' rather than just 'access_' and then support 'access_log_statsd_host', 'statsd_host', 'log_statsd_host' in that order of preference? 21:35
zaitcevXCKD_14_standards.jpg21:35
acolesmeaning, if you want proxy logging to have different statsd host you should configure access_log_statsd_host21:35
timburkethat could work... it feels a little funny to me, though, like it's "most-specific > most-generic > middle" when i'd expect middle to be in the middle... *shrug*21:38
timburkewell, we don't have to sort it out right now. please leave thoughts/comments/ideas on the review!21:40
timburkespeaking of statsd/logging separation...21:40
timburke#topic LoggerStatsdFacade21:40
timburke#link https://review.opendev.org/c/openstack/swift/+/91548321:40
patch-botpatch 915483 - swift - class LoggerStatsdFacade - 25 patch sets21:40
acolesI though of it as "most-specific > generic > deprecated-generic" but, yeah, it's not ideal21:41
timburkenothing too much to report, just wanted to highlight that work continues and there might be some light at the end of that particular tunnel21:42
timburkei think it's getting close21:42
timburkethe last two topics, you can catch up on from the agenda -- i don't think there's anything too much to do for them, but they've been hogging a decent bit of my time the last week or two21:44
timburkethe entry-points patch chain starting at https://review.opendev.org/c/openstack/swift/+/918365 could use some review if anyone has bandwidth21:45
patch-botpatch 918365 - swift - Use entry_points for server executables - 4 patch sets21:45
timburkebut especially since we've got a new face here, i wanted to leave time for21:45
timburke#topic open discussion21:45
timburkeanything else we should bring up this week?21:45
fulecorafaI would like to bring a topic out, if I may21:45
timburkeby all means!21:46
fulecorafaI've been studying how to implement multi-storage-policy containers in swift. A demand for work. I was hopping you guys could share your ideas and/or views on the solution for this21:47
fulecorafamulti-storage-policy as in I can have 2 objects in the same bucket but one would be in normal policy and another in a "glacier" one21:48
acolessymlinks would enable this21:49
timburkefulecorafa, there's definitely been various interest in it over the years -- how are you thinking about objects moving between policies? would you want it to happen automatically after some period of time, or based on user action?21:49
acoles^^^ I was about to continue that the interesting/challenging part is 'automating' policy placement and migration between policies21:50
fulecorafaFrom what I've gathered, I think the solution for this would be to use the same basic logic as SLOs: to have a normal bucket and another marked bucket (i.e. bucket+glacier). When uploading a file, given the policy, it would store the actual object in cold21:51
fulecorafaAnd keep a symlink/manifest of sorts in the original bucket21:51
timburkemakes sense enough -- similar to x-amz-storage-class for s321:52
acolesone thing we have learnt from SLOs and S3 mpus is that it's not a great idea to have 'extra' 'shadow' +segments buckets visible in the users namespace.21:52
acolesbut we have the capability to maintain 'hidden' buckets (which is the direction native-MPU is going on feature/mpu)21:53
timburkeyeah, we'd almost certainly want to use the null-namespace stuff introduced with the most-recent iteration on versioning21:53
fulecorafaAs for objects moving between policies, I know AWS's API has something more on moving objects, but I haven't quite gotten into it. In my specific use-case, we could just use a client to re-put the object? But I'll have to think more on that21:53
fulecorafaacoles, I remenber you commenting this on the orphan patch I've submitted last month.21:54
acolesright21:54
timburkefulecorafa, yeah -- i'd expect to be able to do a server-side copy with a new destination policy21:54
fulecorafaI recon that if we evolve on feature/mpu, we could keep this other marked buckets hidden too right?21:54
timburkeyup, i think that's acoles's plan too21:55
acolesI think there might be a good deal of commonality with native MPU 21:55
opendevreviewYan Xiao proposed openstack/swift master: stats: API for native labeled metrics  https://review.opendev.org/c/openstack/swift/+/90988221:55
fulecorafaShould be good to go foward with this plan!21:56
acolespossibly even a degenerate use case "Single Part Upload" :) that uses the manifest/symlink/hidden container logic21:56
timburkei'd only note that things may start to get pretty confusing when you've got, say, a versioned MPU uploaded to one of these mixed-policy containers...21:57
fulecorafaJust one last question: For my specific use-case, we're just working with the S3 api in an older version. Even if we do this, the bucket should not be visible to s3 clients, correct?21:57
jianjianfulecorafa, will it be enough that application move objects between a normal container and a cold policy container?21:57
acolesthere's probably similar cleanup concerns - what happens to the target object in "cold" when the user object is overwritten? it needs to be cleaned up like orphan segments do21:58
acolestimburke: yeah, whilst I see commonality I'm also wary of overloading the goals of native-MPUs. One step at a time..21:59
fulecorafajianjian, I don't think so, but it would be a first step. Taking AWS S3 as a counterpart, there should be other different behaviours we would need to take into account. As of now, I think to have a simple 2 policy solution would be a step in the right direction21:59
acolesMPUs + versioning is complex enough for my small brain!21:59
acolesfulecorafa: just curious, if you are able to share the info, do you use object versioning?22:00
fulecorafaacoles: As soon as I started coding I noted that :). I very much liked the way you did the Orphan collector on feature/mpu. I think it would make it very simple to then collect the cold parts22:01
acoleswe still have a way to go to on finishing the orphan auditor but we're excited about that approach22:02
fulecorafaacoles: yeah, so we do allow for versioning but just for simple, normal policy files. In the future it may be needed to get support for versioning in other types, but that's not allowed yet22:02
acolesand do your clients use s3 API mostly?22:02
fulecorafamostly, yes. We're trying to make it easy to migrate22:03
fulecorafatimburke: Yeah, I think it can become complicated quite fast. but I'm not sure there would be another way. Maybe tinkering with the underlying hashing system? (I mean, the one that actually sets where the file can be found on disk22:04
timburkedo you expect to need separate disk pools for each policy, or would there likely be a high level of overlap? another similar-but-different idea we've had was to have something like an EC policy, but sufficiently small uploads would be stored replicated on the first three assignments22:07
acolessorry I need to drop. fulecorafa: thanks for coming along and sharing your ideas, hope we can make progress together. Ask for help here and we'll do our best :)22:08
timburkeso it'd all use the same policy index and the same disks, but have different storage overheads22:08
fulecorafaacoles: thank you very much for your help receptivity, alongside the comunity's! have a good one22:08
timburkeoh yeah, i suppose we're a decent bit over time :-)22:09
fulecorafatimburke: I think one of the main uses would be to have different disk pools22:09
timburkeack22:09
timburkeall right, i should wrap this up -- but i'll add mixed-policy containers to the agenda for next week, fulecorafa22:10
timburkethank you all for coming, and thank you for working on swift!22:10
timburke#endmeeting22:10
opendevmeetMeeting ended Wed Jun 26 22:10:34 2024 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)22:10
opendevmeetMinutes:        https://meetings.opendev.org/meetings/swift/2024/swift.2024-06-26-21.00.html22:10
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/swift/2024/swift.2024-06-26-21.00.txt22:10
opendevmeetLog:            https://meetings.opendev.org/meetings/swift/2024/swift.2024-06-26-21.00.log.html22:10
fulecorafaThanks a lot timburke! I'll keep updating22:10
timburkethat'll be great, thanks22:10

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