Won't new Auto-Vaccum feature in RPM be seen as a major performance regression by some users? #3520
Replies: 7 comments 3 replies
-
Nah. On SSD's this is a mere blink of an eye, totally lost in the time packages spend running scriptlets and whatnot. On a spinning media everything is slow. If you're building images, it's always a good idea to do a rpmdb --rebuilddb as the last step to compact the db. Finally, as with any such heuristics: it's of course possible we need to further fine-tune the mechanism. Only time and real-world usage will tell. |
Beta Was this translation helpful? Give feedback.
-
Vacuuming can also only be triggered by new free space to the database. This can only happen on erase or update operations. So many CI applications won't run into that. I expect the auto vacuum to primarily kick in after updates - which are typically longer running operations. So most users will probably not even notice. So I am happy to just wait until some users complain with real use cases. |
Beta Was this translation helpful? Give feedback.
-
I agree that As for "HDs are slow and that's just the way it is", I raised this issue because I was already suffering. and the delay of an intermittent rebuild is actually much worse. My suspicion is that few if any users (of the shrinking population that still uses HDDs) will be sufficiently observant to notice a sporadic slowdown, which may only appear days after they automatically upgrade the rpm package in a particular setting. It's very easy to just rationalize this kind of intermittent slowness away. It may indeed hurt UX without you hearing about it for a long time. Do you have anything in place to collect telemetry about how frequently this triggers for end users, if only from some volunteer beta testers? or your fine selves? Note: |
Beta Was this translation helpful? Give feedback.
-
SQL internal vacuum is not the same as --rebuilddb, only similar. Speculating on such matters is waste of time. If you're concerned, then by all means test and report back. None of us even have spinning disks, so it's impossible for us to test. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
a VACCUM is unusual in warming up every page of the DB, I don't think regular transactions would do quite that. |
Beta Was this translation helpful? Give feedback.
-
Also just FWIW: upgrading to an SSD is one of the bigger quality-of-life improvements you'll find in the 40-100€ range. |
Beta Was this translation helpful? Give feedback.
-
Moving this here to as a place for discussion. @ffesti @pmatilai
#3452 introduced an Auto-VACCUM threshold into rpm. (#3309 and related rpm-software-management/dnf5#2002)
I'm concerned about this change introducing a non-deterministic of latency into everyday package management operations. In my experience users hate non-deterministic response times and may perceive it as a significant regression.
LLM says that
so vacuuming a recently vacuumed database takes just as much time (ignoring effects of a possibly hot page cache), For spinning rust, this actually matters, while for 2000MB/s SSDs (where the rebuild may be quite quick) the bloat isn't noticeable to begin with.
Scenarios:
Can "rpm -i ABC; rpm -i XYZ" cause two cleanups while "rpm -i ABCXYZ" incurs the overhead only once? might users have to pay the cost of a rebuild multiple times in one session?
Doesn't this make more sense as a cron job by distros? how do major distros usually handle periodic cleanup jobs like this? perhaps all they need is a hook to call. So that RPM can report if it needs to rebuild but the distro decides when: "mechanism, not policy".
Beta Was this translation helpful? Give feedback.
All reactions