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.94.2) (envelope-from ) id 1rNrD5-00GOMx-Av for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Jan 2024 09:18:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rNrD4-00AZPo-6u for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Jan 2024 09:18:46 +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.94.2) (envelope-from ) id 1rNrD3-00AZPf-Eg for pgsql-hackers@lists.postgresql.org; Thu, 11 Jan 2024 09:18:45 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rNrD0-000z7c-F9 for pgsql-hackers@postgresql.org; Thu, 11 Jan 2024 09:18:44 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 79A846088D for ; Thu, 11 Jan 2024 18:18:38 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_c4e0836878ec2ce0c08b22a67a5a458d" Content-Transfer-Encoding: 7bit Date: Thu, 11 Jan 2024 18:18:38 +0900 From: Shinya Kato To: pgsql-hackers@postgresql.org Subject: Fix bugs not to discard statistics when changing stats_fetch_consistency User-Agent: Roundcube Webmail/1.4.11 Message-ID: X-Sender: Shinya11.Kato@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_c4e0836878ec2ce0c08b22a67a5a458d Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, hackers There is below description in docs for stats_fetch_consistency. "Changing this parameter in a transaction discards the statistics snapshot." However, I wonder if changes stats_fetch_consistency in a transaction, statistics is not discarded in some cases. Example: -- * session 1 =# SET stats_fetch_consistency TO snapshot; =# BEGIN; =*# SELECT wal_records, wal_fpi, wal_bytes FROM pg_stat_wal; wal_records | wal_fpi | wal_bytes -------------+---------+----------- 23592 | 628 | 5939027 (1 row) * session 2 =# CREATE TABLE test (i int); -- generate WAL records =# SELECT wal_records, wal_fpi, wal_bytes FROM pg_stat_wal; wal_records | wal_fpi | wal_bytes -------------+---------+----------- 23631 | 644 | 6023411 (1 row) * session 1 =*# -- snapshot is not discarded, it is right =*# SELECT wal_records, wal_fpi, wal_bytes FROM pg_stat_wal; wal_records | wal_fpi | wal_bytes -------------+---------+----------- 23592 | 628 | 5939027 (1 row) =*# SET stats_fetch_consistency TO cache; =*# -- snapshot is not discarded, it is not right =*# SELECT wal_records, wal_fpi, wal_bytes FROM pg_stat_wal; wal_records | wal_fpi | wal_bytes -------------+---------+----------- 23592 | 628 | 5939027 (1 row) -- I can see similar cases in pg_stat_archiver, pg_stat_bgwriter, pg_stat_checkpointer, pg_stat_io, and pg_stat_slru. Is it a bug? I fixed it, and do you think? -- Regards, Shinya Kato NTT DATA GROUP CORPORATION --=_c4e0836878ec2ce0c08b22a67a5a458d Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v1-0001-fix-stats-fetch-consinstency-bugs.patch Content-Disposition: attachment; filename=v1-0001-fix-stats-fetch-consinstency-bugs.patch; size=3350 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKaW5kZXggMTI1Y2E5N2IxOC4uNDBlZjZlZjMy MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTE3MTQsMyArMTcxNCwxMSBA QCBhc3NpZ25fc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3koaW50IG5ld3ZhbCwgdm9pZCAqZXh0cmEp CiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5jeSAhPSBuZXd2YWwpCiAJCWZvcmNlX3N0YXRz X3NuYXBzaG90X2NsZWFyID0gdHJ1ZTsKIH0KKworCit2b2lkCitwZ3N0YXRfY2xlYXJfc25hcHNo b3RfaWZfbmVlZGVkKHZvaWQpCit7CisJaWYgKGZvcmNlX3N0YXRzX3NuYXBzaG90X2NsZWFyKQor CQlwZ3N0YXRfY2xlYXJfc25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF9hcmNoaXZlci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X2FyY2hpdmVyLmMKaW5kZXggNjYzOThiMjBlNS4uZDQ5NzllOWZkMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2FyY2hpdmVyLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2FyY2hpdmVyLmMKQEAgLTU3LDYgKzU3 LDcgQEAgcGdzdGF0X3JlcG9ydF9hcmNoaXZlcihjb25zdCBjaGFyICp4bG9nLCBib29sIGZhaWxl ZCkKIFBnU3RhdF9BcmNoaXZlclN0YXRzICoKIHBnc3RhdF9mZXRjaF9zdGF0X2FyY2hpdmVyKHZv aWQpCiB7CisJcGdzdGF0X2NsZWFyX3NuYXBzaG90X2lmX25lZWRlZCgpOwogCXBnc3RhdF9zbmFw c2hvdF9maXhlZChQR1NUQVRfS0lORF9BUkNISVZFUik7CiAKIAlyZXR1cm4gJnBnU3RhdExvY2Fs LnNuYXBzaG90LmFyY2hpdmVyOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X2Jnd3JpdGVyLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRf Ymd3cml0ZXIuYwppbmRleCA3ZDI0MzJlNGZhLi45MzFkMGYxN2U3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfYmd3cml0ZXIuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfYmd3cml0ZXIuYwpAQCAtNzAsNiArNzAsNyBAQCBwZ3N0 YXRfcmVwb3J0X2Jnd3JpdGVyKHZvaWQpCiBQZ1N0YXRfQmdXcml0ZXJTdGF0cyAqCiBwZ3N0YXRf ZmV0Y2hfc3RhdF9iZ3dyaXRlcih2b2lkKQogeworCXBnc3RhdF9jbGVhcl9zbmFwc2hvdF9pZl9u ZWVkZWQoKTsKIAlwZ3N0YXRfc25hcHNob3RfZml4ZWQoUEdTVEFUX0tJTkRfQkdXUklURVIpOwog CiAJcmV0dXJuICZwZ1N0YXRMb2NhbC5zbmFwc2hvdC5iZ3dyaXRlcjsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9jaGVja3BvaW50ZXIuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9jaGVja3BvaW50ZXIuYwppbmRleCAzMGE4MTEwZTM4 Li5hYzcwMDA3MmVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXRfY2hlY2twb2ludGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X2NoZWNrcG9pbnRlci5jCkBAIC03OSw2ICs3OSw3IEBAIHBnc3RhdF9yZXBvcnRfY2hlY2twb2lu dGVyKHZvaWQpCiBQZ1N0YXRfQ2hlY2twb2ludGVyU3RhdHMgKgogcGdzdGF0X2ZldGNoX3N0YXRf Y2hlY2twb2ludGVyKHZvaWQpCiB7CisJcGdzdGF0X2NsZWFyX3NuYXBzaG90X2lmX25lZWRlZCgp OwogCXBnc3RhdF9zbmFwc2hvdF9maXhlZChQR1NUQVRfS0lORF9DSEVDS1BPSU5URVIpOwogCiAJ cmV0dXJuICZwZ1N0YXRMb2NhbC5zbmFwc2hvdC5jaGVja3BvaW50ZXI7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW8uYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9pby5jCmluZGV4IDQzYzM5M2Q2ZmUuLjEzNzEyYWE0YWYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jCkBAIC0xNTYsNiArMTU2LDcgQEAgcGdz dGF0X2NvdW50X2lvX29wX3RpbWUoSU9PYmplY3QgaW9fb2JqZWN0LCBJT0NvbnRleHQgaW9fY29u dGV4dCwgSU9PcCBpb19vcCwKIFBnU3RhdF9JTyAqCiBwZ3N0YXRfZmV0Y2hfc3RhdF9pbyh2b2lk KQogeworCXBnc3RhdF9jbGVhcl9zbmFwc2hvdF9pZl9uZWVkZWQoKTsKIAlwZ3N0YXRfc25hcHNo b3RfZml4ZWQoUEdTVEFUX0tJTkRfSU8pOwogCiAJcmV0dXJuICZwZ1N0YXRMb2NhbC5zbmFwc2hv dC5pbzsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9zbHJ1 LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfc2xydS5jCmluZGV4IDU2ZWEx YzMzNzguLjdmOGE5N2U4Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9zbHJ1LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3Ns cnUuYwpAQCAtMTA0LDYgKzEwNCw3IEBAIHBnc3RhdF9jb3VudF9zbHJ1X3RydW5jYXRlKGludCBz bHJ1X2lkeCkKIFBnU3RhdF9TTFJVU3RhdHMgKgogcGdzdGF0X2ZldGNoX3NscnUodm9pZCkKIHsK KwlwZ3N0YXRfY2xlYXJfc25hcHNob3RfaWZfbmVlZGVkKCk7CiAJcGdzdGF0X3NuYXBzaG90X2Zp eGVkKFBHU1RBVF9LSU5EX1NMUlUpOwogCiAJcmV0dXJuIHBnU3RhdExvY2FsLnNuYXBzaG90LnNs cnU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfd2FsLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfd2FsLmMKaW5kZXggMWEzYzBlMWE2 Ni4uZjhmY2Y5MDlmMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0X3dhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF93YWwuYwpA QCAtNjYsNiArNjYsNyBAQCBwZ3N0YXRfcmVwb3J0X3dhbChib29sIGZvcmNlKQogUGdTdGF0X1dh bFN0YXRzICoKIHBnc3RhdF9mZXRjaF9zdGF0X3dhbCh2b2lkKQogeworCXBnc3RhdF9jbGVhcl9z bmFwc2hvdF9pZl9uZWVkZWQoKTsKIAlwZ3N0YXRfc25hcHNob3RfZml4ZWQoUEdTVEFUX0tJTkRf V0FMKTsKIAogCXJldHVybiAmcGdTdGF0TG9jYWwuc25hcHNob3Qud2FsOwo= --=_c4e0836878ec2ce0c08b22a67a5a458d--