borg icon indicating copy to clipboard operation
borg copied to clipboard

ACLs on FreeBSD: use ACL_TEXT_NUMERIC_IDS for better speed

Open ThomasWaldmann opened this issue 1 month ago • 1 comments

https://man.freebsd.org/cgi/man.cgi?query=acl_to_text&sektion=3&apropos=0&manpath=FreeBSD+14.3-RELEASE+and+Ports

We can:

  • get the uid / gid instead of the names: always use ACL_TEXT_NUMERIC_IDS
  • avoid a gazillion more or less expensive, uncached lookups inside "libacl" for the user/group names (especially for samba / winbind this can be slow)
  • replace these by cached lookups inside borg, using a LRU caches to map uids to user names and to map gids to group names (uid2user and gid2group already have caching).
  • replace the uid / gid in the ACL by some custom code (see linux.pyx)

Adding this feature needs a FreeBSD developer, who can develop and test it.

The Linux code in master branch already uses a similar method. #9143

ThomasWaldmann avatar Nov 04 '25 17:11 ThomasWaldmann

#9143 was merged into master branch ("borg2"), so it can be tested practically on Linux more easily.

ThomasWaldmann avatar Nov 21 '25 16:11 ThomasWaldmann