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 1sTvOP-003lqx-Fs for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Jul 2024 03:31:49 +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 1sTvOO-0065ZF-23 for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Jul 2024 03:31:48 +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 1sTvON-0065YK-KO for pgsql-hackers@lists.postgresql.org; Wed, 17 Jul 2024 03:31:47 +0000 Received: from mail-lj1-x22c.google.com ([2a00:1450:4864:20::22c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sTvOK-002RSA-Lf for pgsql-hackers@lists.postgresql.org; Wed, 17 Jul 2024 03:31:46 +0000 Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-2eeb1ba0481so88148381fa.2 for ; Tue, 16 Jul 2024 20:31:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721187102; x=1721791902; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Q0ac6gAZq//M1PSDosiaQ0LWfflOQ1rz1/KPIJXeNf8=; b=CoGDrssWfgdLu1BlXAJQZwL2yXyTUbqw48rl05m9rQK17fvqCN+dJDTHf1i9KkLgSk SdaTVOAuBduQSn6rQsR1qk/vw5cJjqwJsPn/ClXI9hmSunpNiG6zwgWIhOHNLqh4M+Hh wKdthi4RTLNe5PNVEjuDYeDBLR4NcSbCnM4ysNNqhL6Bda67ekGoJ1wJxWj0UtIXzSe/ h9q/7KQU1/VyfwmPPXGTm+WCD2jHPWzCXc32XXzXDYt6X+SlrTHO3pwwUZc+yXqx19Jv 9fzxUy2BdPPnsWC3RJ0MIfaXRpWLT7SRUeEqcw6VYrg5pl7VZafKxHj4rQeQcDTxrj3q rhkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721187102; x=1721791902; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Q0ac6gAZq//M1PSDosiaQ0LWfflOQ1rz1/KPIJXeNf8=; b=gZ5Ka16+jdVV1zCnbRQlHxBNxH4t6DZgzs9ace4BP0dg2n/BeHEqWR4RgM8FU4aI7L UgHK/oSEEj/g/eIamuRGhVxOawtyCJYuHQD+ksd/R6zOwHr8BuHjJ9nO4VmAHt7YkdRB Gdr9MQfER3U/Y7iCE5V1lNF7+aN+9pQps3wNhSod9ouEH/iJQe9XOm1tLyVnuP+nFhpR ka4pOximP2pPKTgLwkqnR4KG6ijeo38LFC4MlNc3T8e60XfqZXWgx0QwoEZ7vlBVaxkp k5hISGVHejIIX5YU3ga0CMVEjSmXzm64ZjAAC5Lznj+/N34ZDLagC0s5FDp/QJikc9cy mcMg== X-Forwarded-Encrypted: i=1; AJvYcCXDD1WPrYdoRW9IoP5n9uqNV0dSeF9Jjqa39I/81Y1zCZuzV7465DoB4QakDdSYvEGl8bd4UY3XtITeSfHRQjECr0twgoY9aD1cl2zFSFgXfXv0 X-Gm-Message-State: AOJu0YyBYa7iDAAdTALWA+0f/uuhMAl+NwnGbuHqkvCW2W+rg6P4aJwF +2TvFCBTGBqqabdRObSdSSxtTgaTxjQWrx2g86n/VfWX7rVBOFgtuNUPVkUJyVLeSnEVe/5Rwfa Zi35mTiUqUFYF0paEY/4cJRPxEDI= X-Google-Smtp-Source: AGHT+IEY6ZJ//Et4lmtYioU2UO8lLeDTH7K8x2GinGA8CQ8fUgVZG5/Y57q4SXAQ/VRtyBSpjVRgoBFJnRXs8wVoE+Q= X-Received: by 2002:a05:651c:2ce:b0:2ee:7740:aa74 with SMTP id 38308e7fff4ca-2eefd06d9bcmr2374661fa.3.1721187102066; Tue, 16 Jul 2024 20:31:42 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Peter Smith Date: Wed, 17 Jul 2024 13:31:14 +1000 Message-ID: Subject: Re: Slow catchup of 2PC (twophase) transactions on replica in LR To: "Hayato Kuroda (Fujitsu)" Cc: Amit Kapila , "Zhijie Hou (Fujitsu)" , "pgsql-hackers@lists.postgresql.org" , Vitaly Davydov , Ajin Cherian Content-Type: multipart/mixed; boundary="000000000000cfa844061d69193e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cfa844061d69193e Content-Type: multipart/alternative; boundary="000000000000cfa842061d69193c" --000000000000cfa842061d69193c Content-Type: text/plain; charset="UTF-8" Here are some review comments for patch v18-0002. ====== src/backend/commands/subscriptioncmds.c 1. CheckAlterSubOption 1a. It's not obvious why we are only checking the 'slot name' when needs_update==true, but OTOH is always checking the 'enabled' state. ~ 1b. Param 'needs_update' is a vague name. It needs more explanatory comments or a better name. e.g. First impression was "Why are we calling 'Alter' function if needs_update is false?". I know it encapsulates some common code, but if special cases cause the logic to be more confusing then that cost may outweigh the benefit of this function. ~ 1c. If the error checks can be moved to be done up-front, then all the 'needs_update' can be combined. Avoiding multiple checks to 'needs_update' will make this function simpler. ~~~ AlterSubscription: nitpick - typo /needs/need/ nitpick - typo /wo_phase/two_phase/ nitpick - The comment wording "the later part...", was confusing. I've reworded the whole comment. But this belongs in patch 0001. ====== src/test/subscription/t/021_twophase.pl nitpick - Use the same "###############################" comment style as in patch 0001 to indicate each main TEST scenario. ====== 99. Please refer to the diffs attachment patch, which implements any nitpicks mentioned above. ====== Kind Regards, Peter Smith. Fujitsu Australia --000000000000cfa842061d69193c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Here are some review comments for patch v18-0002.

= =3D=3D=3D=3D=3D=3D
src/backend/commands/subscriptioncmds.c

1. Ch= eckAlterSubOption

1a.
It's not obvious why we are only checki= ng the 'slot name' when needs_update=3D=3Dtrue, but OTOH is always = checking=C2=A0the=C2=A0 'enabled' state.

~

1b.
Par= am 'needs_update' is a vague name. It needs more explanatory commen= ts or a better name. e.g. First impression was "Why are we calling = 9;Alter' function if needs_update is false?". I know it encapsulat= es some common code, but if special cases cause the logic to be more confus= ing then that cost may outweigh the benefit of this function.

~
<= br>1c.
If the error checks can be moved to be done up-front, then all th= e 'needs_update' can be combined. Avoiding multiple checks to '= needs_update' will make this function simpler.
=C2=A0
~~~

= AlterSubscription:
nitpick - typo /needs/need/
nitpick - typo /wo_pha= se/two_phase/
nitpick - The comment wording "the later part..."= ;, was confusing. I've reworded the whole comment. But this belongs in = patch 0001.

=3D=3D=3D=3D=3D=3D
src/test/subscription/t/021_twophase.pl

nitpick - Use the same= "###############################" comment style as in patch 0001= to indicate each main TEST scenario.

=3D=3D=3D=3D=3D=3D
99.
P= lease refer to the diffs attachment patch, which implements any nitpicks me= ntioned above.

=3D=3D=3D=3D=3D=3D
Kind Regards,
Peter Smith.Fujitsu Australia
--000000000000cfa842061d69193c-- --000000000000cfa844061d69193e Content-Type: text/plain; charset="US-ASCII"; name="PS_NITPICKS_20240717_2PC_V180002.txt" Content-Disposition: attachment; filename="PS_NITPICKS_20240717_2PC_V180002.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lypac5ba0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCBkODBkNjBjLi41YzZm MGE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0xMjYyLDcg KzEyNjIsNyBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vi c2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlpZiAoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywg U1VCT1BUX0ZBSUxPVkVSKSkKIAkJCQl7CiAJCQkJCS8qCi0JCQkJCSAqIEZpcnN0IG1hcmsgdGhl IG5lZWRzIHRvIGFsdGVyIHRoZSByZXBsaWNhdGlvbiBzbG90LgorCQkJCQkgKiBGaXJzdCwgbWFy ayB0aGUgbmVlZCB0byBhbHRlciB0aGUgcmVwbGljYXRpb24gc2xvdC4KIAkJCQkJICogRmFpbG92 ZXIgb3B0aW9uIGlzIGNvbnRyb2xsZWQgYnkgYm90aCB0aGUgcHVibGlzaGVyIChhcwogCQkJCQkg KiBhIHNsb3Qgb3B0aW9uKSBhbmQgdGhlIHN1YnNjcmliZXIgKGFzIGEgc3Vic2NyaXB0aW9uCiAJ CQkJCSAqIG9wdGlvbikuCkBAIC0xMjgwLDcgKzEyODAsNyBAQCBBbHRlclN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlpZiAo SXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX1RXT1BIQVNFX0NPTU1JVCkpCiAJCQkJ ewogCQkJCQkvKgotCQkJCQkgKiBGaXJzdCBjaGVjayB0aGUgbmVlZCB0byBhbHRlciB0aGUgcmVw bGljYXRpb24gc2xvdC4KKwkJCQkJICogRmlyc3QsIGNoZWNrIHRoZSBuZWVkIHRvIGFsdGVyIHRo ZSByZXBsaWNhdGlvbiBzbG90LgogCQkJCQkgKiBUd29fcGhhc2Ugb3B0aW9uIGlzIGNvbnRyb2xs ZWQgYnkgYm90aCB0aGUgcHVibGlzaGVyCiAJCQkJCSAqIChhcyBhIHNsb3Qgb3B0aW9uKSBhbmQg dGhlIHN1YnNjcmliZXIgKGFzIGEKIAkJCQkJICogc3Vic2NyaXB0aW9uIG9wdGlvbikuIFRoZSBz bG90IG9wdGlvbiBtdXN0IGJlIGFsdGVyZWQKQEAgLTEzMDIsMTEgKzEzMDIsOSBAQCBBbHRlclN1 YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3Rt dCwKIAkJCQkJCQkJCQlpc1RvcExldmVsKTsKIAogCQkJCQkvKgotCQkJCQkgKiBJZiB0aGUgd29f cGhhc2Ugc2xvdCBvcHRpb24gbXVzdCBiZSBhbHRlcmVkLCB0aGlzCi0JCQkJCSAqIGNhbm5vdCBi ZSBhbHRlcmVkIHdpdGggc2xvdF9uYW1lIHNpbXVsdGFuZW91c2x5LiBUaGUKLQkJCQkJICogbGF0 dGVyIHBhcnQgcmVmZXJzIHRvIHRoZSBwcmUtc2V0IHNsb3QgbmFtZSBhbmQgdHJpZXMKLQkJCQkJ ICogdG8gbW9kaWZ5IHRoZSBzbG90IG9wdGlvbiwgc28gY2hhbmdpbmcgYm90aCBkb2VzIG5vdAot CQkJCQkgKiBtYWtlIHNlbnNlLgorCQkJCQkgKiBNb2RpZnlpbmcgdGhlIHR3b19waGFzZSBzbG90 IG9wdGlvbiByZXF1aXJlcyBhIHNsb3QKKwkJCQkJICogbG9va3VwIGJ5IHNsb3QgbmFtZSwgc28g Y2hhbmdpbmcgdGhlIHNsb3QgbmFtZQorCQkJCQkgKiBhdCB0aGUgc2FtZSB0aW1lIGlzIG5vdCBh bGxvd2VkLgogCQkJCQkgKi8KIAkJCQkJaWYgKHVwZGF0ZV90d29fcGhhc2UgJiYKIAkJCQkJCUlz U2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9TTE9UX05BTUUpKQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDIxX3R3b3BoYXNlLnBsIGIvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDIxX3R3b3BoYXNlLnBsCmluZGV4IGY1NmRmZjQuLjI2YjllMmMgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyMV90d29waGFzZS5wbAorKysgYi9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMjFfdHdvcGhhc2UucGwKQEAgLTQyMyw5ICs0MjMsMTIgQEAgJHJl c3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19wcmVwYXJlZF94YWN0czsiKTsKIGlzKCRyZXN1bHQsIHFxKDApLCAn c2hvdWxkIGJlIG5vIHByZXBhcmVkIHRyYW5zYWN0aW9ucyBvbiBzdWJzY3JpYmVyJyk7CiAKLSMg VG9nZ2xlIHRoZSB0d29fcGhhc2UgdG8gInRydWUiICpiZWZvcmUqIHRoZSBDT01NSVQgUFJFUEFS RUQuIFNpbmNlIHdlIGFyZSB0aGUKLSMgc3BlY2lhbCBwYXRoIGZvciB0aGUgY2FzZSB3aGVyZSBi b3RoIHR3b19waGFzZSBhbmQgZmFpbG92ZXIgYXJlIGFsdGVyZWQsIGl0Ci0jIGlzIGFsc28gc2V0 IHRvICJ0cnVlIi4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVG9nZ2xlIHRo ZSB0d29fcGhhc2UgdG8gInRydWUiIGJlZm9yZSB0aGUgQ09NTUlUIFBSRVBBUkVELgorIworIyBT aW5jZSB3ZSBhcmUgdGhlIHNwZWNpYWwgcGF0aCBmb3IgdGhlIGNhc2Ugd2hlcmUgYm90aCB0d29f cGhhc2UKKyMgYW5kIGZhaWxvdmVyIGFyZSBhbHRlcmVkLCBpdCBpcyBhbHNvIHNldCB0byAidHJ1 ZSIuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKICAgICAiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfY29w eSBESVNBQkxFOyIpOwogJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdy ZXMnLAo= --000000000000cfa844061d69193e--