[MacPorts] #70556: "base" seemingly locking up for sometimes very long
MacPorts
noreply at macports.org
Mon Sep 2 13:22:25 UTC 2024
#70556: "base" seemingly locking up for sometimes very long
--------------------------+--------------------
Reporter: RJVB | Owner: (none)
Type: enhancement | Status: new
Priority: Normal | Milestone:
Component: base | Version:
Resolution: | Keywords:
Port: |
--------------------------+--------------------
Comment (by RJVB):
Do you have sqlitebrowser installed, or do you know how else to determine
what your registry's pagesize is set to?
(https://www.sqlite.org/pragma.html#pragma_page_size)
That, plus what's the architecture of the machine you're on and how
fragmented is the drive holding the registry (if it's a spinning disk)?
Your registry is huge compared (5-10x mine) and if we're talking about one
of your retro-computers it seems inevitable that DB maintenance is going
to be slow for any of the reasons hinted at above.
This thread had me googling for sqlite3 optimisations, and the ones I
found were
- use a cheap transparent filesystem compression like LZ4
- set pagesize to 64k
- on ZFS, set the dataset recordsize to 64k too
I can confirm that the registry DB compresses awfully well, no wonder
since it must be full of repeats of common paths, and this will of course
improve I/O speeds maybe even on pre-nvme SSDs.
Transparent FS compression doesn't exist on Mac unless you install ZFS
(www.o3x.org) but while it has become stable and fast I wouldn't advise it
unless you keep very regular backups.
I think you should evaluate how much old luggage there is in your
installation, and uninstall anything you really don't need anymore. If you
make a backup of $prefix/var/macports/registry and the corresponding files
under $prefix/var/macports/software you can always reinstall ports you
shouldn't have uninstalled, with a bit of manual hackery.
But, this cleanup will probably be a lengthy process: I have no idea how
good MacPorts is in automatically uninstalling only the appropriate
versions of dependencies and/or dependents of a given port version, while
leaving all the other versions.
Not very good I'm afraid, if it is any indication that `port dependents
foo` will list every port you have installed that once depended on
`port:foo`.
--
Ticket URL: <https://trac.macports.org/ticket/70556#comment:16>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list