RE: Skipping logical replication transactions on subscriber side - Mailing list pgsql-hackers

From houzj.fnst@fujitsu.com
Subject RE: Skipping logical replication transactions on subscriber side
Date
Msg-id OS0PR01MB5716694DE74D898B231CFD8194EC9@OS0PR01MB5716.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Re: Skipping logical replication transactions on subscriber side  (Masahiko Sawada <sawada.mshk@gmail.com>)
Responses Re: Skipping logical replication transactions on subscriber side  (Masahiko Sawada <sawada.mshk@gmail.com>)
List pgsql-hackers
On July 29, 2021 1:48 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> 
> Sorry I've attached wrong ones. Reattached the correct version patches.

Hi,

I had some comments on the new version patches.

1)

-       relstate = (SubscriptionRelState *) palloc(sizeof(SubscriptionRelState));
-       relstate->relid = subrel->srrelid;
+       relstate = (SubscriptionRelState *) hash_search(htab, (void *) &subrel->srrelid,
+                                                       HASH_ENTER, NULL);

I found the new version patch changes the List type 'relstate' to hash table type
'relstate'. Will this bring significant performance improvements ?

2)
+ * PgStat_StatSubRelErrEntry represents a error happened during logical

a error => an error

3)
+CREATE VIEW pg_stat_subscription_errors AS
+    SELECT
+   d.datname,
+   sr.subid,
+   s.subname,

It seems the 'subid' column is not mentioned in the document of the
pg_stat_subscription_errors view.


4)
+
+                   if (fread(&nrels, 1, sizeof(long), fpin) != sizeof(long))
+                   {
    ...
+                   for (int i = 0; i < nrels; i++)

the type of i(int) seems different of the type or 'nrels'(long), it might be
better to use the same type.

Best regards,
houzj

pgsql-hackers by date:

Previous
From: "houzj.fnst@fujitsu.com"
Date:
Subject: RE: Added schema level support for publication.
Next
From: Greg Nancarrow
Date:
Subject: Re: Parallel Inserts (WAS: [bug?] Missed parallel safety checks..)