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 1u1h8S-006Z1b-VV for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Apr 2025 07:43:14 +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 1u1h8R-00DAZz-D7 for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Apr 2025 07:43:11 +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 1u0PHw-009npc-4y for pgsql-hackers@lists.postgresql.org; Thu, 03 Apr 2025 18:27:40 +0000 Received: from forward103d.mail.yandex.net ([178.154.239.214]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1u0PHs-002mXM-1i for pgsql-hackers@postgresql.org; Thu, 03 Apr 2025 18:27:38 +0000 Received: from mail-nwsmtp-mxback-production-main-12.klg.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-12.klg.yp-c.yandex.net [IPv6:2a02:6b8:c42:6543:0:640:39f9:0]) by forward103d.mail.yandex.net (Yandex) with ESMTPS id 614CD60025 for ; Thu, 3 Apr 2025 21:27:32 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c43:c13:0:640:885d:0 [2a02:6b8:c43:c13:0:640:885d:0]) by mail-nwsmtp-mxback-production-main-12.klg.yp-c.yandex.net (mxback/Yandex) with HTTPS id QRdNUg1LtiE0-eOqA3IDV; Thu, 03 Apr 2025 21:27:32 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1743704852; bh=7Au76mh2VPEa9tDKaPilCzygUv6sKMTL4l8wiUF3HIA=; h=Message-Id:Date:Subject:To:From; b=kbhPaE45kFHsTuvy3w5aVu0/zF8Vkizrfh5BlmXWJQ+vDe5Xr9gfPh2SdFxIbaq/m 16b6jOK8ZBfk1fZmlawdaLLVv0zvjO/TgmRgG5B4bort4wSWOzhCxcXwERp/z0g1J1 3R+0ZcdeA2fL0hjpNeuQdcoKyFWaJXP/ZW6pS0mM= Authentication-Results: mail-nwsmtp-mxback-production-main-12.klg.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by mail-sendbernar-production-main-61.klg.yp-c.yandex.net with HTTP; Thu, 03 Apr 2025 21:27:32 +0300 From: ls7777 To: "pgsql-hackers@postgresql.org" Subject: Patch for migration of the pg_commit_ts directory MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Thu, 03 Apr 2025 23:27:32 +0500 Message-Id: <182311743703924@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.1245643.r-production-main-61.klg.yp-c.yandex.net" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------==--bound.1245643.r-production-main-61.klg.yp-c.yandex.net Content-Transfer-Encoding: 8bit Content-Type: text/html; charset=utf-8
Good afternoon!
During pg_upgrade migration, the pg_commit_ts directory is not copied when track_commit_timestamp = on is set. There is a patch in the attachment that fixes this.
 
Contents & Purpose
==================
The patch copies the pg_commit_ts directory of the old cluster and updates the Latest checkpoints oldestCommitTsXid and Latest checkpoint's newestCommitTsXid for the new cluster. If required.
 
Initial Run
===========
The patch can be applied on the master branch.
I don't understand what tests are needed for such a patch. The patch is very simple.
 Performance
===========
The pg_upgrade operation time increases by the time the pg_commit_ts catalog is copied.
 
 
------==--bound.1245643.r-production-main-61.klg.yp-c.yandex.net Content-Disposition: attachment; filename="v1-0001-Migration-of-the-pg_commit_ts-directory.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="v1-0001-Migration-of-the-pg_commit_ts-directory.patch" RnJvbSA1ZmNiYWNkODcwMDI3YWZlOWQ1OWJlYzY5NmZhZGZhZTU3MjdkYjViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnZXkgTGV2aW4gPGxzNzc3N0B5YW5kZXgucnU+CkRhdGU6 IFRodSwgMyBBcHIgMjAyNSAyMTo0NDowMSArMDUwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIE1pZ3Jh dGlvbiBvZiB0aGUgcGdfY29tbWl0X3RzIGRpcmVjdG9yeQoKLS0tCiBzcmMvYmluL3BnX3VwZ3Jh ZGUvY29udHJvbGRhdGEuYyB8IDIzICsrKysrKysrKysrKysrKysrKysrKystCiBzcmMvYmluL3Bn X3VwZ3JhZGUvcGdfdXBncmFkZS5jICB8ICA2ICsrKystLQogc3JjL2Jpbi9wZ191cGdyYWRlL3Bn X3VwZ3JhZGUuaCAgfCAgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9jb250cm9sZGF0 YS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NvbnRyb2xkYXRhLmMKaW5kZXggNDdlZTI3ZWM4MzUu LjBkYTVlZTQyMjVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvY29udHJvbGRhdGEu YworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvY29udHJvbGRhdGEuYwpAQCAtMjA3LDcgKzIwNyw4 IEBAIGdldF9jb250cm9sX2RhdGEoQ2x1c3RlckluZm8gKmNsdXN0ZXIpCiAJCWNsdXN0ZXItPmNv bnRyb2xkYXRhLmRhdGFfY2hlY2tzdW1fdmVyc2lvbiA9IDA7CiAJCWdvdF9kYXRhX2NoZWNrc3Vt X3ZlcnNpb24gPSB0cnVlOwogCX0KLQorCWNsdXN0ZXItPmNvbnRyb2xkYXRhLmNoa3BudF9vbGRz dENvbW1pdFRzeGlkID0gMDsKKwljbHVzdGVyLT5jb250cm9sZGF0YS5jaGtwbnRfbmV3c3RDb21t aXRUc3hpZCA9IDA7CiAJLyogd2UgaGF2ZSB0aGUgcmVzdWx0IG9mIGNtZCBpbiAib3V0cHV0Ii4g c28gcGFyc2UgaXQgbGluZSBieSBsaW5lIG5vdyAqLwogCXdoaWxlIChmZ2V0cyhidWZpbiwgc2l6 ZW9mKGJ1ZmluKSwgb3V0cHV0KSkKIAl7CkBAIC0zMjAsNiArMzIxLDI2IEBAIGdldF9jb250cm9s X2RhdGEoQ2x1c3RlckluZm8gKmNsdXN0ZXIpCiAJCQljbHVzdGVyLT5jb250cm9sZGF0YS5jaGtw bnRfbnh0bXVsdGkgPSBzdHIydWludChwKTsKIAkJCWdvdF9tdWx0aSA9IHRydWU7CiAJCX0KKwkJ ZWxzZSBpZiAoKHAgPSBzdHJzdHIoYnVmaW4sICJMYXRlc3QgY2hlY2twb2ludCdzIG9sZGVzdENv bW1pdFRzWGlkOiIpKSAhPSBOVUxMKQorCQl7CisJCQlwID0gc3RyY2hyKHAsICc6Jyk7CisKKwkJ CWlmIChwID09IE5VTEwgfHwgc3RybGVuKHApIDw9IDEpCisJCQkJcGdfZmF0YWwoIiVkOiBjb250 cm9sZGF0YSByZXRyaWV2YWwgcHJvYmxlbSIsIF9fTElORV9fKTsKKworCQkJcCsrOwkJCQkvKiBy ZW1vdmUgJzonIGNoYXIgKi8KKwkJCWNsdXN0ZXItPmNvbnRyb2xkYXRhLmNoa3BudF9vbGRzdENv bW1pdFRzeGlkID0gc3RyMnVpbnQocCk7CisJCX0KKwkJZWxzZSBpZiAoKHAgPSBzdHJzdHIoYnVm aW4sICJMYXRlc3QgY2hlY2twb2ludCdzIG5ld2VzdENvbW1pdFRzWGlkOiIpKSAhPSBOVUxMKQor CQl7CisJCQlwID0gc3RyY2hyKHAsICc6Jyk7CisKKwkJCWlmIChwID09IE5VTEwgfHwgc3RybGVu KHApIDw9IDEpCisJCQkJcGdfZmF0YWwoIiVkOiBjb250cm9sZGF0YSByZXRyaWV2YWwgcHJvYmxl bSIsIF9fTElORV9fKTsKKworCQkJcCsrOwkJCQkvKiByZW1vdmUgJzonIGNoYXIgKi8KKwkJCWNs dXN0ZXItPmNvbnRyb2xkYXRhLmNoa3BudF9uZXdzdENvbW1pdFRzeGlkID0gc3RyMnVpbnQocCk7 CisJCX0KIAkJZWxzZSBpZiAoKHAgPSBzdHJzdHIoYnVmaW4sICJMYXRlc3QgY2hlY2twb2ludCdz IG9sZGVzdFhJRDoiKSkgIT0gTlVMTCkKIAkJewogCQkJcCA9IHN0cmNocihwLCAnOicpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9iaW4vcGdfdXBn cmFkZS9wZ191cGdyYWRlLmMKaW5kZXggOTI5NWU0NmFlZDMuLjc0NmY4YTZiMDJiIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBn cmFkZS9wZ191cGdyYWRlLmMKQEAgLTc1MSw2ICs3NTEsOCBAQCBjb3B5X3hhY3RfeGxvZ194aWQo dm9pZCkKIAkJCQkJICAicGdfY2xvZyIgOiAicGdfeGFjdCIsCiAJCQkJCSAgR0VUX01BSk9SX1ZF UlNJT04obmV3X2NsdXN0ZXIubWFqb3JfdmVyc2lvbikgPD0gOTA2ID8KIAkJCQkJICAicGdfY2xv ZyIgOiAicGdfeGFjdCIpOworCWlmIChvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfb2xk c3RDb21taXRUc3hpZCA+IDApCisJCQkJCSAgIGNvcHlfc3ViZGlyX2ZpbGVzKCJwZ19jb21taXRf dHMiLCAicGdfY29tbWl0X3RzIik7CiAKIAlwcmVwX3N0YXR1cygiU2V0dGluZyBvbGRlc3QgWElE IGZvciBuZXcgY2x1c3RlciIpOwogCWV4ZWNfcHJvZyhVVElMSVRZX0xPR19GSUxFLCBOVUxMLCB0 cnVlLCB0cnVlLApAQCAtNzczLDggKzc3NSw4IEBAIGNvcHlfeGFjdF94bG9nX3hpZCh2b2lkKQog CWV4ZWNfcHJvZyhVVElMSVRZX0xPR19GSUxFLCBOVUxMLCB0cnVlLCB0cnVlLAogCQkJICAiXCIl cy9wZ19yZXNldHdhbFwiIC1mIC1jICV1LCV1IFwiJXNcIiIsCiAJCQkgIG5ld19jbHVzdGVyLmJp bmRpciwKLQkJCSAgb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dHhpZCwKLQkJCSAg b2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dHhpZCwKKwkJCSAgb2xkX2NsdXN0ZXIu Y29udHJvbGRhdGEuY2hrcG50X29sZHN0Q29tbWl0VHN4aWQgPT0gMCA/IG9sZF9jbHVzdGVyLmNv bnRyb2xkYXRhLmNoa3BudF9ueHR4aWQgOiBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRf b2xkc3RDb21taXRUc3hpZCwKKwkJCSAgb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X25l d3N0Q29tbWl0VHN4aWQgPT0gMCA/IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHR4 aWQgOiBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbmV3c3RDb21taXRUc3hpZCwKIAkJ CSAgbmV3X2NsdXN0ZXIucGdkYXRhKTsKIAljaGVja19vaygpOwogCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3Jh ZGUuaAppbmRleCA2OWM5NjViYjdkMC4uYjU1ZTJjMmVhODQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfdXBncmFkZS9wZ191cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3Jh ZGUuaApAQCAtMjM4LDYgKzIzOCw4IEBAIHR5cGVkZWYgc3RydWN0CiAJdWludDMyCQljaGtwbnRf bnh0bXhvZmY7CiAJdWludDMyCQljaGtwbnRfb2xkc3RNdWx0aTsKIAl1aW50MzIJCWNoa3BudF9v bGRzdHhpZDsKKwl1aW50MzIJCWNoa3BudF9vbGRzdENvbW1pdFRzeGlkOworCXVpbnQzMgkJY2hr cG50X25ld3N0Q29tbWl0VHN4aWQ7CiAJdWludDMyCQlhbGlnbjsKIAl1aW50MzIJCWJsb2Nrc3o7 CiAJdWludDMyCQlsYXJnZXN6OwotLSAKMi40Mi4yCgo= ------==--bound.1245643.r-production-main-61.klg.yp-c.yandex.net--