Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w9ss5-001r1f-09 for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Apr 2026 22:56:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w9ss3-00Cbr4-0i for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Apr 2026 22:56:39 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w9ss2-00Cbqw-2a for pgsql-hackers@lists.postgresql.org; Mon, 06 Apr 2026 22:56:39 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w9ss0-00000000yxg-25cL for pgsql-hackers@postgresql.org; Mon, 06 Apr 2026 22:56:38 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-65c4152313fso5813223a12.1 for ; Mon, 06 Apr 2026 15:56:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775516195; cv=none; d=google.com; s=arc-20240605; b=NI0EOY6SiOVNRCdnaSUbgwWeGJPxq/dLMUKVA4CKaueFDDnqgd/m2PCZLqdaJFFj4c 3AP3iXWxzmNKaNtST0r65GmhvBWZwMsSawz+Mb9QUKoEzQUHVYpNhb5DctsKdN65YwPr WWtaXBG7ivucr74JbD6RyZQyfwWyqU9GOPOOtnM2tbw+lvWO0eIx2dLdJlVKrkqHPTtG naMjvxZPyPJvyqiWfF+I1yWSJveS0GhONHkUHbGJDsspvzD2OAeKieffS/M2SbgMDPE2 7Jsigt3c1Rhp7iEmiVwkLQuifyBWM+UaQY73DPjF6O8doZWI4434vnOInmQlMSgfFplo tlyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=reLwJE+O1Pli3InwFErubqJtAy1rpWS+3sCZIQNPzwA=; fh=RfrkJab44jNT7RraF/sJO97r9/nkUL0AAgzmC7PBS2w=; b=hJOSCS8BchEG1daDs/KNnrNaXbyBtm8zs/XvYrNGSXfk9ZUBM/JkpP8FfdZs7oTGZI YewAi6pgiNJnFf7h4Uugt2YE3kq7itrOsqjSJF8FAafztTMjSUQp1BBmO+14VWVjqecM satTkqBeM83RQ1fhQJvi3pj/eZFR1uATaqQEsu3BVtdT3VO5u1Ewr2NFS5kpAb9+jqjR A45wRnn/w4ou9O6Iz2hJDvfyOVSwQFwphLTbiBtBM5l9i1u1s3HOyEGGzkxVzR1x49yb nNbMYEuCc1vHO9WsvsUJqhsj6dNUjP7QpaaayoPHCgYXlppqeSDUg3ISa/mBrXJs/0xk XR4w==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775516195; x=1776120995; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=reLwJE+O1Pli3InwFErubqJtAy1rpWS+3sCZIQNPzwA=; b=g9UBCKCJEpgJIjW8szYQVJLs/yHEUxCGStXnB1whbZfpUZw95ndWZMd+Z2CK+USvca zKXHLLhB3gYyXlsKbdOTB4/1HvwH1DVkdqojWwA+awtmUlYJsIVAZnaPG8ZhmUvg2XJU I0w1H5MmSLlgl+BlrduW71hOz0QCR82pKG0CFfkXNZCoJvwhizh3CeKAWDn8S3W8J97h 4y/3ShA4RIlE5qwVVCq4wqF/JMLZfdLJKbooMNTI4lXH99urPBvWMe4xqqpE4ZgfASeb iGnq7O2QtQjLgGzGS5bBxVXJ7+lZZttJgJ/fLCBpASdEy8WlO7Dz5YbG2mJdcI2XF/aB PImQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775516195; x=1776120995; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=reLwJE+O1Pli3InwFErubqJtAy1rpWS+3sCZIQNPzwA=; b=SniWbSKgWmhplOijuv6CBnQjzlXis1CasE2v4RiMl+pm/AsC+MJVXkg4HrkZwDI99n 2gXv8z4fxIqXrz92+EK//oCwRv5r3uE9vqOT9PcklYXM6ec5ymJABMQ557RyvpdjPPAc DFFFkoQszxuLO7DpD2BXK+dvRsQuPHUlYnu8sc+tYBXCWnYzoFWLibepNsoYWKQvZmZC w740RG9wpebnlUv9zgFk8W6k014P6Zar7dN6QSzIcnsC0Mz7LJoM2fpD38dBZE51bO7f 0LISPWtNO39KMnxEZcsLlL9kOYAvLHbKBErJkQYSqkAvDUo7sJTLvLqi96hIw7/A1fA7 kTFQ== X-Gm-Message-State: AOJu0YyXlKKugekajN4Kc6obYSvyz7rrnA0RCnn8kNAcv0zHPm11Y2HX Fhf7tvxi6SdUqUVG1UMFlNiT9R9DyfucbYNLPlvUSyOTgsUffo0ZSwUeURXcSPUaz/VuPxGKMD+ OUDwymQWk6sm69IXWL/b5YhcrIt1PG+d85QbZzfs= X-Gm-Gg: AeBDievyznYZFskCTjo1Pe76pnNQpPJrSm5qSdPEakO0rcIWiScHqUieHgfbFzuaIYV pLxgLH/+06gwfW8S9FhJOCcl2d0Xp9oXDJlR5AkwMTH6HJgN7lYDQE5nx6/wTzn8C4PoJPw5MX7 4uuSNM8Di2wuJjtFQAgs2VViy6CQElTp4JyRLRO8s3orqbGd8B7KOHdd4uwgDppKYep+P4X8UgA wK0+WJ9rGfgganVbLk1nfBZLpTr1Y7P5nzhEfqtTDVM9tbLAGd4+q+uSv7GKiGr92/TaUWqdcyu H5w+Sw== X-Received: by 2002:a05:6402:551b:b0:66e:aade:1a36 with SMTP id 4fb4d7f45d1cf-66eaade1e47mr3357703a12.6.1775516195225; Mon, 06 Apr 2026 15:56:35 -0700 (PDT) MIME-Version: 1.0 From: Sami Imseih Date: Mon, 6 Apr 2026 17:56:21 -0500 X-Gm-Features: AQROBzC_SOBO5rJJzH-rBIYaCSMvIrRDndXULk8sVZ5GY5pKrMLT67O9bEScs90 Message-ID: Subject: Return DSA area for hash table from GetNamedDSHash() To: pgsql-hackers Content-Type: multipart/mixed; boundary="0000000000001c3481064ed29422" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001c3481064ed29422 Content-Type: text/plain; charset="UTF-8" Hi, While working on extending tests for dshash.c [1], I realized that a user that creates a hash table with GetNamedDSHash() has no way to cap the size of the dsa area underpinning the table by using dsa_set_size_limit(). This is because the dsa_area created using this API is not exposed to the user. This is a gap for users of the GetNamedDSHash() API, because it's very likely that the callers don't want runaway growth of these hash tables. Attached is a new API, dshash_get_dsa_area() that takes in a dshash_table and returns the area. The caller can then use dsa_set_size_limit() to limit the size. We could change the GetNamedDSHash() API to take in a size, but that will not be ideal since a caller may want to change the size dynamically after the hash table is created. I don't have a patch for this yet, but I also think it will make sense for pg_dsm_registry_allocations to also show the max_size postgres=# select * from pg_dsm_registry_allocations; name | type | size ------------------------+---------+--------- test_dsm_registry_dsa | area | 1048576 test_dsm_registry_hash | hash | 1048576 test_dsm_registry_dsm | segment | 20 (3 rows) Thoughts? [1] [https://www.postgresql.org/message-id/acXCJODjsCytdpwT%40paquier.xyz] -- Sami Imseih Amazon Web Services (AWS) --0000000000001c3481064ed29422 Content-Type: application/octet-stream; name="v1-0001-Add-function-to-return-DSA-area-for-a-dshash-tabl.patch" Content-Disposition: attachment; filename="v1-0001-Add-function-to-return-DSA-area-for-a-dshash-tabl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnnsgl390 RnJvbSBiMmY2OTM3NzQzNWZlMTcwYjEzMjFlNTVkMGMzMTQxZWJlOGEyZWZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCA2IEFwciAyMDI2IDIxOjUwOjI0ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MSAxLzFd IEFkZCBmdW5jdGlvbiB0byByZXR1cm4gRFNBIGFyZWEgZm9yIGEgZHNoYXNoIHRhYmxlCgpBIGNh bGxlciB1c2luZyBHZXROYW1lZERTSGFzaCgpIHRvIHJldHJpZXZlIGEgZHNoYXNoIHRhYmxlIG1h eSBhbHNvCndhbnQgdG8gbGltaXQgaXRzIHNpemUuIEFkZCBkc2hhc2hfZ2V0X2RzYV9hcmVhKCks IHdoaWNoIHJldHVybnMgdGhlCmRzYV9hcmVhIGZvciBhIGdpdmVuIGRzaGFzaF90YWJsZSwgYWxs b3dpbmcgY2FsbGVycyB0byBwYXNzIGl0IHRvCmRzYV9zZXRfc2l6ZV9saW1pdCgpLgotLS0KIHNy Yy9iYWNrZW5kL2xpYi9kc2hhc2guYyB8IDExICsrKysrKysrKysrCiBzcmMvaW5jbHVkZS9saWIv ZHNoYXNoLmggfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9saWIvZHNoYXNoLmMgYi9zcmMvYmFja2VuZC9saWIvZHNoYXNo LmMKaW5kZXggMTk5OTk4OWMxNGYuLjYyYWM2OGQ0YWRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9saWIvZHNoYXNoLmMKKysrIGIvc3JjL2JhY2tlbmQvbGliL2RzaGFzaC5jCkBAIC0zNjMsNiAr MzYzLDE3IEBAIGRzaGFzaF9kZXN0cm95KGRzaGFzaF90YWJsZSAqaGFzaF90YWJsZSkKIAlwZnJl ZShoYXNoX3RhYmxlKTsKIH0KIAorLyoKKyAqIEdldCB0aGUgRFNBIGFyZWEgdXNlZCBieSB0aGlz IGhhc2ggdGFibGUuCisgKi8KK2RzYV9hcmVhICoKK2RzaGFzaF9nZXRfZHNhX2FyZWEoZHNoYXNo X3RhYmxlICpoYXNoX3RhYmxlKQoreworCUFzc2VydChoYXNoX3RhYmxlLT5jb250cm9sLT5tYWdp YyA9PSBEU0hBU0hfTUFHSUMpOworCisJcmV0dXJuIGhhc2hfdGFibGUtPmFyZWE7Cit9CisKIC8q CiAgKiBHZXQgYSBoYW5kbGUgdGhhdCBjYW4gYmUgdXNlZCBieSBvdGhlciBwcm9jZXNzZXMgdG8g YXR0YWNoIHRvIHRoaXMgaGFzaAogICogdGFibGUuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9s aWIvZHNoYXNoLmggYi9zcmMvaW5jbHVkZS9saWIvZHNoYXNoLmgKaW5kZXggNjRiNzU4YjM4MWIu LmI4NjgwODRkZjA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9saWIvZHNoYXNoLmgKKysrIGIv c3JjL2luY2x1ZGUvbGliL2RzaGFzaC5oCkBAIC04OSw2ICs4OSw3IEBAIGV4dGVybiBkc2hhc2hf dGFibGUgKmRzaGFzaF9hdHRhY2goZHNhX2FyZWEgKmFyZWEsCiAJCQkJCQkJCSAgIGRzaGFzaF90 YWJsZV9oYW5kbGUgaGFuZGxlLAogCQkJCQkJCQkgICB2b2lkICphcmcpOwogZXh0ZXJuIHZvaWQg ZHNoYXNoX2RldGFjaChkc2hhc2hfdGFibGUgKmhhc2hfdGFibGUpOworZXh0ZXJuIGRzYV9hcmVh ICpkc2hhc2hfZ2V0X2RzYV9hcmVhKGRzaGFzaF90YWJsZSAqaGFzaF90YWJsZSk7CiBleHRlcm4g ZHNoYXNoX3RhYmxlX2hhbmRsZSBkc2hhc2hfZ2V0X2hhc2hfdGFibGVfaGFuZGxlKGRzaGFzaF90 YWJsZSAqaGFzaF90YWJsZSk7CiBleHRlcm4gdm9pZCBkc2hhc2hfZGVzdHJveShkc2hhc2hfdGFi bGUgKmhhc2hfdGFibGUpOwogCi0tIAoyLjUwLjEKCg== --0000000000001c3481064ed29422--