Optimize roles_is_member_of() with a Bloom filter.

Nathan Bossart <nathan@postgresql.org>

Commit: d365ae705409f5d9c81da4b668f59c3598feb512
Author: Nathan Bossart <nathan@postgresql.org>
Date: 2024-03-26T19:43:37Z
Releases: 17.0
Optimize roles_is_member_of() with a Bloom filter.

When the list of roles gathered by roles_is_member_of() grows very
large, a Bloom filter is created to help avoid some linear searches
through the list.  The threshold for creating the Bloom filter is
set arbitrarily high and may require future adjustment.

Suggested-by: Tom Lane
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/CAGvXd3OSMbJQwOSc-Tq-Ro1CAz%3DvggErdSG7pv2s6vmmTOLJSg%40mail.gmail.com

Files

PathChange+/−
src/backend/utils/adt/acl.c modified +65 −3

Discussion