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 1taBqy-00H7zj-CK for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Jan 2025 10:51:29 +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 1taBqx-00EhOz-GL for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Jan 2025 10:51:27 +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.94.2) (envelope-from ) id 1taBqx-00EhOr-1j for pgsql-hackers@lists.postgresql.org; Tue, 21 Jan 2025 10:51:27 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1taBqu-000hc8-03 for pgsql-hackers@lists.postgresql.org; Tue, 21 Jan 2025 10:51:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1737456683; bh=RR/JTG0hBDNHDMRe9vHE2wNe1Xb3Jj2rMyXw9xt6u7E=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Message-ID:From; b=4CTo7gTxp/B3FKUmYdccmBRi+fZpMH9fexoea/LHW6m6GJjDcOJtTMr8Vhc7UgSgA CRyp/l3nBwV3dpiL65mGPNzO07TfrgCXZq8lHLfrGDv+KKNFDh/w2oW5rlazujiISX 9ZJoyUZM+FO0xpFOMBrhccWOAJaYDD8oZEo8YByZot9dPnGoAQbwLsFrGBSXhkl8ME KrtvWi5mf6PwQG7Tuh4hOGbKHOI2ZIomV51Ub1YKhx18jmI44g0kpDhMnjieYTdUNC stSsZKoBFaCQwknawnsTn868IclG+jCv4IS3QFTH0MV0MinxeOnvDf8GeweLfFBKhg sfrvOX9W0k7LA== Received: from mail.postgrespro.ru (webmail-slave-mstn.l.postgrespro.ru [192.168.2.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: m.litsarev@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id F397960442; Tue, 21 Jan 2025 13:51:22 +0300 (MSK) MIME-Version: 1.0 Date: Tue, 21 Jan 2025 13:51:22 +0300 From: m.litsarev@postgrespro.ru To: Ivan Kush Cc: pgsql-hackers@lists.postgresql.org Subject: Re: pg_stat_statements: improve loading and saving routines for the dump file In-Reply-To: <63fd7f0d-2d49-4952-b1ec-fa877bbf0765@tantorlabs.com> References: <192f7185defa370d083e3a237727b066@postgrespro.ru> <63fd7f0d-2d49-4952-b1ec-fa877bbf0765@tantorlabs.com> Message-ID: <181d7759a2ed7d819add4e0086e7a7f9@postgrespro.ru> X-Sender: m.litsarev@postgrespro.ru Content-Type: multipart/mixed; boundary="=_8e7357229cc1a749a494a5aa4796d5b1" X-KSMG-AntiPhishing: NotDetected, bases: 2025/01/21 10:09:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/01/21 04:35:00 #27084723 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_8e7357229cc1a749a494a5aa4796d5b1 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed > // Mutex should be last field, as this field isn't copied to dump file Updated. > 2) You didn't take into account the upgrade. Saved in Postgres with > this byte and try to load in version without this byte. The PGSS_DUMP_FILE format is defined by PGSS_FILE_HEADER magic number (the first four bytes in the dump file). Once they does not coinside (when the file is being read) the statistics are not loaded from the dump file and set to zero and the irrelevant dump file is skipped. This is the actual behaviour implemented in the code. Respectfully, Mikhail Litsarev, Postgres Professional: https://postgrespro.com --=_8e7357229cc1a749a494a5aa4796d5b1 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v2-0001-Exclude-pgssEntry-mutex-for-rw-dump-file.patch Content-Disposition: attachment; filename=v2-0001-Exclude-pgssEntry-mutex-for-rw-dump-file.patch; size=2425 RnJvbSAyMWY1Nzk5OTJlNTRkNzI0ZDBjNmQ0MDljN2ZkZjUxZjFjNDYxOWQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtoYWlsIExpdHNhcmV2IDxtLmxpdHNhcmV2QHBvc3RncmVz cHJvLnJ1PgpEYXRlOiBNb24sIDIwIEphbiAyMDI1IDE1OjQwOjEyICswMzAwClN1YmplY3Q6IFtQ QVRDSF0gcGdfc3RhdF9zdGF0ZW1lbnRzOiBpbXByb3ZlIGxvYWRpbmcgYW5kIHNhdmluZyByb3V0 aW5lcyBmb3IKIHRoZSBkdW1wIGZpbGUuCgpFeGNsdWRlIHJlYWRpbmcvd3JpdGluZyBwZ3NzRW50 cnkgbXV0ZXggZnJvbS9pbnRvIHRoZSBkdW1wIGZpbGUuClVwZGF0ZSB0aGUgbWFnaWMgbnVtYmVy IGlkZW50aWZ5aW5nIHRoZSBzdGF0cyBmaWxlIGZvcm1hdC4KLS0tCiBjb250cmliL3BnX3N0YXRf c3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyB8IDE0ICsrKysrKysrKystLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyBiL2NvbnRy aWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCmluZGV4IGJlYmY4MTM0 ZWIwLi5jNTJkM2RhMTE5MCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMv cGdfc3RhdF9zdGF0ZW1lbnRzLmMKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdf c3RhdF9zdGF0ZW1lbnRzLmMKQEAgLTgyLDcgKzgyLDcgQEAgUEdfTU9EVUxFX01BR0lDOwogI2Rl ZmluZSBQR1NTX1RFWFRfRklMRQlQR19TVEFUX1RNUF9ESVIgIi9wZ3NzX3F1ZXJ5X3RleHRzLnN0 YXQiCiAKIC8qIE1hZ2ljIG51bWJlciBpZGVudGlmeWluZyB0aGUgc3RhdHMgZmlsZSBmb3JtYXQg Ki8KLXN0YXRpYyBjb25zdCB1aW50MzIgUEdTU19GSUxFX0hFQURFUiA9IDB4MjAyMjA0MDg7Citz dGF0aWMgY29uc3QgdWludDMyIFBHU1NfRklMRV9IRUFERVIgPSAweDIwMjUwMTIwOwogCiAvKiBQ b3N0Z3JlU1FMIG1ham9yIHZlcnNpb24gbnVtYmVyLCBjaGFuZ2VzIGluIHdoaWNoIGludmFsaWRh dGUgYWxsIGVudHJpZXMgKi8KIHN0YXRpYyBjb25zdCB1aW50MzIgUEdTU19QR19NQUpPUl9WRVJT SU9OID0gUEdfVkVSU0lPTl9OVU0gLyAxMDA7CkBAIC0yMzMsNyArMjMzLDExIEBAIHR5cGVkZWYg c3RydWN0IHBnc3NFbnRyeQogCWludAkJCWVuY29kaW5nOwkJLyogcXVlcnkgdGV4dCBlbmNvZGlu ZyAqLwogCVRpbWVzdGFtcFR6IHN0YXRzX3NpbmNlOwkvKiB0aW1lc3RhbXAgb2YgZW50cnkgYWxs b2NhdGlvbiAqLwogCVRpbWVzdGFtcFR6IG1pbm1heF9zdGF0c19zaW5jZTsgLyogdGltZXN0YW1w IG9mIGxhc3QgbWluL21heCB2YWx1ZXMgcmVzZXQgKi8KLQlzbG9ja190CQltdXRleDsJCQkvKiBw cm90ZWN0cyB0aGUgY291bnRlcnMgb25seSAqLworCS8qCisJICogcHJvdGVjdHMgdGhlIGNvdW50 ZXJzIG9ubHkuIFNob3VsZCBiZSB0aGUgdmVyeSBsYXN0IGZpZWxkLCBhcyB0aGlzIGZpZWxkCisJ ICogaXNuJ3QgY29waWVkIHRvIFBHU1NfRFVNUF9GSUxFCisJICovCisJc2xvY2tfdAkJbXV0ZXg7 CiB9IHBnc3NFbnRyeTsKIAogLyoKQEAgLTYyNSw3ICs2MjksOCBAQCBwZ3NzX3NobWVtX3N0YXJ0 dXAodm9pZCkKIAkJcGdzc0VudHJ5ICAqZW50cnk7CiAJCVNpemUJCXF1ZXJ5X29mZnNldDsKIAot CQlpZiAoZnJlYWQoJnRlbXAsIHNpemVvZihwZ3NzRW50cnkpLCAxLCBmaWxlKSAhPSAxKQorCQkv KiBSZWFkIHdob2xlIHBnc3NFbnRyeSBleGNsdWRpbmcgdmVyeSBsYXN0IG11dGV4IGZpZWxkICov CisJCWlmIChmcmVhZCgmdGVtcCwgb2Zmc2V0b2YocGdzc0VudHJ5LCBtdXRleCksIDEsIGZpbGUp ICE9IDEpCiAJCQlnb3RvIHJlYWRfZXJyb3I7CiAKIAkJLyogRW5jb2RpbmcgaXMgdGhlIG9ubHkg ZmllbGQgd2UgY2FuIGVhc2lseSBzYW5pdHktY2hlY2sgKi8KQEAgLTc4Miw3ICs3ODcsOCBAQCBw Z3NzX3NobWVtX3NodXRkb3duKGludCBjb2RlLCBEYXR1bSBhcmcpCiAJCWlmIChxc3RyID09IE5V TEwpCiAJCQljb250aW51ZTsJCQkvKiBJZ25vcmUgYW55IGVudHJpZXMgd2l0aCBib2d1cyB0ZXh0 cyAqLwogCi0JCWlmIChmd3JpdGUoZW50cnksIHNpemVvZihwZ3NzRW50cnkpLCAxLCBmaWxlKSAh PSAxIHx8CisJCS8qIFdyaXRlIHdob2xlIHBnc3NFbnRyeSBleGNsdWRpbmcgdmVyeSBsYXN0IG11 dGV4IGZpZWxkICovCisJCWlmIChmd3JpdGUoZW50cnksIG9mZnNldG9mKHBnc3NFbnRyeSwgbXV0 ZXgpLCAxLCBmaWxlKSAhPSAxIHx8CiAJCQlmd3JpdGUocXN0ciwgMSwgbGVuICsgMSwgZmlsZSkg IT0gbGVuICsgMSkKIAkJewogCQkJLyogbm90ZTogd2UgYXNzdW1lIGhhc2hfc2VxX3Rlcm0gd29u J3QgY2hhbmdlIGVycm5vICovCi0tIAoyLjM0LjEKCg== --=_8e7357229cc1a749a494a5aa4796d5b1--