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 1x3ylC-006o0V-0z for pgsql-hackers@arkaria.postgresql.org; Tue, 08 Sep 2026 16:33:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1x3ylA-008e1M-2u for pgsql-hackers@arkaria.postgresql.org; Tue, 08 Sep 2026 16:33:24 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x3ylA-008e0n-1V for pgsql-hackers@lists.postgresql.org; Tue, 08 Sep 2026 16:33:24 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1x3yl8-00000004ctK-2BfF for pgsql-hackers@postgresql.org; Tue, 08 Sep 2026 16:33:23 +0000 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-49cd77e0f95so39304145e9.3 for ; Tue, 08 Sep 2026 09:33:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788885201; x=1789490001; darn=postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:content-type:from:to:cc :subject:date:message-id:reply-to:content-type; bh=0gR3JAuoJuMQLarE2mue8eTNeR5wKHCXtRZC/u/UDKM=; b=ovUPzU+XdQIz7ZpnAkL4vMrjWN+NhgI+V8KeucpGYt7gkYFCvXSlnkJkP9BszsBC+p enctvaPGhFctmAVtSDkfgCBOL1XiVKznYEb/188TDnNOXdpU/ggHRZyCFCedrTJth/35 sMwxAWKleUQzaWDpG1hUqykeOfyWKtvioidbuFUaDzbB7qFU2h+oOx2UFNbTInl8yMY0 xynOTr2DrSe1Xnn3BKjQeA6KI+j5uZ2EZ5c4SBxL4Q4YZuzWWdHmdgNXrUa7WxhYuZnh plEutUDkMk464KzsEgVJj8nKZUl1q76g6x3lYEdSbOb9kpe9gsuo3U4n3tmdUJle1Tli u5Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788885201; x=1789490001; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=0gR3JAuoJuMQLarE2mue8eTNeR5wKHCXtRZC/u/UDKM=; b=D3zrha52xjih/JT1aKuAYgHFc6LYK4nu+QTeVomSeDXCQX2CmPMO2CBmUevKtvLT83 HT7P3kZYuws5s19llobxuRwWa1POcO9Dm91QesjuS5mXfkstof0Qwd2MHwNpI+gX+PNi 73G32H16zwevqd7VejE5rmntVRtDRSRTrDKtfpm2BHfA9bNLGcpUIiiPEe58cgnkiqK4 rzTeCkPDz1XqbHy/rZsVAvHfko5W7qyAJXxNbxpYFdBMmMYnT/dJ7j8eqEmkOKNjGc2q f6x4r5YjUNK16BwoPRDfegWV94KA/9qOmbiZctyZGzR2cI7e2pjPivP+bGcnwehg+w2f 7+bQ== X-Forwarded-Encrypted: i=1; AKwUvBwvOFqFta4W6XQZeJ8HO6XFRo79gXrNFbvo3agMqCQ9/ZMCGL6haakVNwqK/AZI3IshKuMXJ1J24Ctvzbrd@postgresql.org X-Gm-Message-State: AFuF++l6nihPbwiJCFUEo0MZkaXnYH1M48hMkUbw1bIUTc65BljJzIbE ULObNXEKOtpUF9wtIHMPews83zv9oe4Rkfcq/Jfpvf810mR9t/PtO6qt X-Gm-Gg: AYBFou0X//yfclqxOnCTM4E33bjBIlWfBA64qpIJQNL06fLk+jaS2Wvn4Jhbt0E+237 FBtgKNJ4lx9/vN8jYbkOw2jACJNdcE3Bc6t18v2ZNS5jR6RJYO5dGyxYKmAAhmQjNExTsgtu9kQ RwO54Q0CTdk0nVHf6tBf3orvQTdVvPExphDPIm5dGYdrqe5b88elYj3XGnRLHFx4/lKV77JWCkL 7qrwcScyl0Ha9eDQa8VeumDknBsBg6JibbbZRgXQ/WYRQToCQ0cMQWK2sQrannVdmu2L0RETKrQ BmnF7Kjk0YaX7EZMNAuZyZnkTZiK8T26ZIQ78bt7LCosuZWDrNgdKTp6wpuND0aNpCXiAey/Ffo JstaR610JDPUBvdl4FkX/Ah5oM2R71oU3N54AitRc/1ZhpoJfq7NcQ6eGjCyM/UpzfHpwySiA/L jDOwK2aBsOE+VxjrCLs+8x9MLSsubriQIEAs3403za7kRPS6Ijl+3v0fE= X-Received: by 2002:a05:600c:4fc5:b0:49c:fe18:6dd5 with SMTP id 5b1f17b1804b1-49cfe186dfemr270360475e9.29.1788885200522; Tue, 08 Sep 2026 09:33:20 -0700 (PDT) Received: from [100.64.0.1] ([165.225.27.19]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49cf7740d44sm886574695e9.15.2026.09.08.09.33.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Sep 2026 09:33:19 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------b3r0xjue9NZ1a24kNHs8N6e3" Message-ID: Date: Tue, 8 Sep 2026 18:33:18 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Add pg_stat_vfdcache view for VFD cache statistics To: Ayoub Kazar Cc: KAZAR Ayoub , Tomas Vondra , Jakub Wartak , Pg Hackers References: <42776281-3603-4161-b47d-d4ffd2029e8c@vondra.me> <02cfc5e7-e152-4d2d-8b4b-e899d9901ed5@gmail.com> <52677fc8-f57d-48c2-9415-6beb3ea6fa01@gmail.com> <11d0df16-94b8-4223-87f7-2e84084a28af@gmail.com> <3b394e5f-ac4e-446c-b422-92be2b984722@gmail.com> Content-Language: en-US From: David Geier In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------b3r0xjue9NZ1a24kNHs8N6e3 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit >>>> However, I'm wondering if the better approach wouldn't be to change fd.c >>>> to use a long-lived memory context. Then all bookkeeping would happen >>>> automatically and the memory size could simply be reported via existing >>>> memory context stats infrastructure. >>>> >>>> Not entirely sure though if there's some roadblock when switching to a >>>> memory context. >>> I don't see any issue with this either. However, the only benefit we >> would >>> gain is using existing infrastructure but only for backend vfd cache >> memory >>> (i.e cache_bytes). >>> Everything else stays the same (counters, cluster-wide memory); >> therefore, >>> if there's no other benefit to replacing with memory contexts, maybe it's >>> not worth it. >> >> The biggest benefit in my view is consistency with the rest of PostgreSQL. >> That is from a usage point of view as well as from a coding point of view. >> If you want, I can give that a try and share a patch with you if >> successful. >> > Yes of course, I’d be happy to take a look. Attached is the patch. It's pretty small and passes regress tests. -- David Geier --------------b3r0xjue9NZ1a24kNHs8N6e3 Content-Type: text/plain; charset=UTF-8; name="v1-0001-Vfd-cache-uses-memory-context-instead-of-malloc.patch" Content-Disposition: attachment; filename*0="v1-0001-Vfd-cache-uses-memory-context-instead-of-malloc.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBmZDUzZTJiOGM0NjU4MTMwMWMwMDBiMTdhZTRmNjdiYTQyNWM0MWY2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCA4IFNlcCAyMDI2IDE4OjIyOjMzICswMjAwClN1YmplY3Q6IFtQQVRD SCB2MV0gVmZkIGNhY2hlIHVzZXMgbWVtb3J5IGNvbnRleHQgaW5zdGVhZCBvZiBtYWxsb2MK Ci0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMgfCA1NyArKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMo KyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv ZmlsZS9mZC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMKaW5kZXggMTkwYzk5 NzQ0OTQuLjVmYWU2NTE0OGE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2Zp bGUvZmQuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvZmQuYwpAQCAtOTksNiAr OTksNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3Vj LmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCisjaW5jbHVkZSAidXRpbHMvbWVt dXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9yZXNvd25lci5oIgogI2luY2x1ZGUgInV0aWxz L3ZhcmxlbmEuaCIKICNpbmNsdWRlICJ1dGlscy93YWl0X2V2ZW50LmgiCkBAIC0yMTcsNiAr MjE4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgdmZkCiAgKiBuZWVkZWQuICAnRmlsZScgdmFsdWVz IGFyZSBpbmRleGVzIGludG8gdGhpcyBhcnJheS4KICAqIE5vdGUgdGhhdCBWZmRDYWNoZVsw XSBpcyBub3QgYSB1c2FibGUgVkZELCBqdXN0IGEgbGlzdCBoZWFkZXIuCiAgKi8KK3N0YXRp YyBNZW1vcnlDb250ZXh0IFZmZEN4dDsKIHN0YXRpYyBWZmQgKlZmZENhY2hlOwogc3RhdGlj IFNpemUgU2l6ZVZmZENhY2hlID0gMDsKIApAQCAtOTA1LDEyICs5MDcsMTMgQEAgSW5pdEZp bGVBY2Nlc3Modm9pZCkKIHsKIAlBc3NlcnQoU2l6ZVZmZENhY2hlID09IDApOwkvKiBjYWxs IG1lIG9ubHkgb25jZSAqLwogCisJaWYgKFZmZEN4dCA9PSBOVUxMKQorCQlWZmRDeHQgPSBB bGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJCSJWZmQg Y2FjaGUgY29udGV4dCIsCisJCQkJCQkJCQlBTExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsKKwog CS8qIGluaXRpYWxpemUgY2FjaGUgaGVhZGVyIGVudHJ5ICovCi0JVmZkQ2FjaGUgPSAoVmZk ICopIG1hbGxvYyhzaXplb2YoVmZkKSk7Ci0JaWYgKFZmZENhY2hlID09IE5VTEwpCi0JCWVy ZXBvcnQoRkFUQUwsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKLQkJ CQkgZXJybXNnKCJvdXQgb2YgbWVtb3J5IikpKTsKKwlWZmRDYWNoZSA9IE1lbW9yeUNvbnRl eHRBbGxvYyhWZmRDeHQsIHNpemVvZihWZmQpKTsKIAogCU1lbVNldCgmKFZmZENhY2hlWzBd KSwgMCwgc2l6ZW9mKFZmZCkpOwogCVZmZENhY2hlLT5mZCA9IFZGRF9DTE9TRUQ7CkBAIC0x NDAzLDYgKzE0MDYsNyBAQCBBbGxvY2F0ZVZmZCh2b2lkKQogewogCUluZGV4CQlpOwogCUZp bGUJCWZpbGU7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwogCiAJRE9fREIoZWxvZyhM T0csICJBbGxvY2F0ZVZmZC4gU2l6ZSAlenUiLCBTaXplVmZkQ2FjaGUpKTsKIApAQCAtMTQy MiwxMyArMTQyNiwxMSBAQCBBbGxvY2F0ZVZmZCh2b2lkKQogCQkJbmV3Q2FjaGVTaXplID0g MzI7CiAKIAkJLyoKLQkJICogQmUgY2FyZWZ1bCBub3QgdG8gY2xvYmJlciBWZmRDYWNoZSBw dHIgaWYgcmVhbGxvYyBmYWlscy4KKwkJICogQmUgY2FyZWZ1bCBub3QgdG8gY2xvYmJlciBW ZmRDYWNoZSBwdHIgaWYgYWxsb2NhdGlvbiBmYWlscy4KIAkJICovCi0JCW5ld1ZmZENhY2hl ID0gKFZmZCAqKSByZWFsbG9jKFZmZENhY2hlLCBzaXplb2YoVmZkKSAqIG5ld0NhY2hlU2l6 ZSk7Ci0JCWlmIChuZXdWZmRDYWNoZSA9PSBOVUxMKQotCQkJZXJlcG9ydChFUlJPUiwKLQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKLQkJCQkJIGVycm1zZygib3V0 IG9mIG1lbW9yeSIpKSk7CisJCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o VmZkQ3h0KTsKKwkJbmV3VmZkQ2FjaGUgPSByZXBhbGxvY19hcnJheShWZmRDYWNoZSwgVmZk LCBuZXdDYWNoZVNpemUpOworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7 CiAJCVZmZENhY2hlID0gbmV3VmZkQ2FjaGU7CiAKIAkJLyoKQEAgLTE0NjYsNyArMTQ2OCw3 IEBAIEZyZWVWZmQoRmlsZSBmaWxlKQogCiAJaWYgKHZmZFAtPmZpbGVOYW1lICE9IE5VTEwp CiAJewotCQlmcmVlKHZmZFAtPmZpbGVOYW1lKTsKKwkJcGZyZWUodmZkUC0+ZmlsZU5hbWUp OwogCQl2ZmRQLT5maWxlTmFtZSA9IE5VTEw7CiAJfQogCXZmZFAtPmZkc3RhdGUgPSAweDA7 CkBAIC0xNTgyLDE0ICsxNTg0LDcgQEAgUGF0aE5hbWVPcGVuRmlsZVBlcm0oY29uc3QgY2hh ciAqZmlsZU5hbWUsIGludCBmaWxlRmxhZ3MsIG1vZGVfdCBmaWxlTW9kZSkKIAlET19EQihl bG9nKExPRywgIlBhdGhOYW1lT3BlbkZpbGVQZXJtOiAlcyAleCAlbyIsCiAJCQkgICBmaWxl TmFtZSwgZmlsZUZsYWdzLCBmaWxlTW9kZSkpOwogCi0JLyoKLQkgKiBXZSBuZWVkIGEgbWFs bG9jJ2QgY29weSBvZiB0aGUgZmlsZSBuYW1lOyBmYWlsIGNsZWFubHkgaWYgbm8gcm9vbS4K LQkgKi8KLQlmbmFtZWNvcHkgPSBzdHJkdXAoZmlsZU5hbWUpOwotCWlmIChmbmFtZWNvcHkg PT0gTlVMTCkKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX09VVF9P Rl9NRU1PUlkpLAotCQkJCSBlcnJtc2coIm91dCBvZiBtZW1vcnkiKSkpOworCWZuYW1lY29w eSA9IE1lbW9yeUNvbnRleHRTdHJkdXAoVmZkQ3h0LCBmaWxlTmFtZSk7CiAKIAlmaWxlID0g QWxsb2NhdGVWZmQoKTsKIAl2ZmRQID0gJlZmZENhY2hlW2ZpbGVdOwpAQCAtMTYxMiw3ICsx NjA3LDcgQEAgUGF0aE5hbWVPcGVuRmlsZVBlcm0oY29uc3QgY2hhciAqZmlsZU5hbWUsIGlu dCBmaWxlRmxhZ3MsIG1vZGVfdCBmaWxlTW9kZSkKIAkJaW50CQkJc2F2ZV9lcnJubyA9IGVy cm5vOwogCiAJCUZyZWVWZmQoZmlsZSk7Ci0JCWZyZWUoZm5hbWVjb3B5KTsKKwkJcGZyZWUo Zm5hbWVjb3B5KTsKIAkJZXJybm8gPSBzYXZlX2Vycm5vOwogCQlyZXR1cm4gLTE7CiAJfQpA QCAtMjU1NSw2ICsyNTUwLDExIEBAIHJlc2VydmVBbGxvY2F0ZWREZXNjKHZvaWQpCiAJQWxs b2NhdGVEZXNjICpuZXdEZXNjczsKIAlpbnQJCQluZXdNYXg7CiAKKwlpZiAoVmZkQ3h0ID09 IE5VTEwpCisJCVZmZEN4dCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShUb3BNZW1vcnlDb250 ZXh0LAorCQkJCQkJCQkJCSJWZmQgY2FjaGUgY29udGV4dCIsCisJCQkJCQkJCQkJQUxMT0NT RVRfREVGQVVMVF9TSVpFUyk7CisKIAkvKiBRdWljayBvdXQgaWYgYXJyYXkgYWxyZWFkeSBo YXMgYSBmcmVlIHNsb3QuICovCiAJaWYgKG51bUFsbG9jYXRlZERlc2NzIDwgbWF4QWxsb2Nh dGVkRGVzY3MpCiAJCXJldHVybiB0cnVlOwpAQCAtMjU2OCwxMiArMjU2OCw4IEBAIHJlc2Vy dmVBbGxvY2F0ZWREZXNjKHZvaWQpCiAJaWYgKGFsbG9jYXRlZERlc2NzID09IE5VTEwpCiAJ ewogCQluZXdNYXggPSBGRF9NSU5GUkVFIC8gMzsKLQkJbmV3RGVzY3MgPSAoQWxsb2NhdGVE ZXNjICopIG1hbGxvYyhuZXdNYXggKiBzaXplb2YoQWxsb2NhdGVEZXNjKSk7Ci0JCS8qIE91 dCBvZiBtZW1vcnkgYWxyZWFkeT8gIFRyZWF0IGFzIGZhdGFsIGVycm9yLiAqLwotCQlpZiAo bmV3RGVzY3MgPT0gTlVMTCkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVS UkNPREVfT1VUX09GX01FTU9SWSksCi0JCQkJCSBlcnJtc2coIm91dCBvZiBtZW1vcnkiKSkp OworCQluZXdEZXNjcyA9IE1lbW9yeUNvbnRleHRBbGxvYyhWZmRDeHQsCisJCQkJCQkJCQkg bmV3TWF4ICogc2l6ZW9mKEFsbG9jYXRlRGVzYykpOwogCQlhbGxvY2F0ZWREZXNjcyA9IG5l d0Rlc2NzOwogCQltYXhBbGxvY2F0ZWREZXNjcyA9IG5ld01heDsKIAkJcmV0dXJuIHRydWU7 CkBAIC0yNTkzLDExICsyNTg5LDEyIEBAIHJlc2VydmVBbGxvY2F0ZWREZXNjKHZvaWQpCiAJ bmV3TWF4ID0gbWF4X3NhZmVfZmRzIC8gMzsKIAlpZiAobmV3TWF4ID4gbWF4QWxsb2NhdGVk RGVzY3MpCiAJewotCQluZXdEZXNjcyA9IChBbGxvY2F0ZURlc2MgKikgcmVhbGxvYyhhbGxv Y2F0ZWREZXNjcywKLQkJCQkJCQkJCQkJbmV3TWF4ICogc2l6ZW9mKEFsbG9jYXRlRGVzYykp OwotCQkvKiBUcmVhdCBvdXQtb2YtbWVtb3J5IGFzIGEgbm9uLWZhdGFsIGVycm9yLiAqLwor CQluZXdEZXNjcyA9IE1lbW9yeUNvbnRleHRBbGxvY0V4dGVuZGVkKFZmZEN4dCwKKwkJCQkJ CQkJCQkJIG5ld01heCAqIHNpemVvZihBbGxvY2F0ZURlc2MpLCBNQ1hUX0FMTE9DX05PX09P TSk7CiAJCWlmIChuZXdEZXNjcyA9PSBOVUxMKQogCQkJcmV0dXJuIGZhbHNlOworCQltZW1j cHkobmV3RGVzY3MsIGFsbG9jYXRlZERlc2NzLCBtYXhBbGxvY2F0ZWREZXNjcyAqIHNpemVv ZihBbGxvY2F0ZURlc2MpKTsKKwkJcGZyZWUoYWxsb2NhdGVkRGVzY3MpOwogCQlhbGxvY2F0 ZWREZXNjcyA9IG5ld0Rlc2NzOwogCQltYXhBbGxvY2F0ZWREZXNjcyA9IG5ld01heDsKIAkJ cmV0dXJuIHRydWU7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --------------b3r0xjue9NZ1a24kNHs8N6e3--