[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