Re: Logical Replication of sequences - Mailing list pgsql-hackers

From shveta malik
Subject Re: Logical Replication of sequences
Date
Msg-id CAJpy0uAFu7EF+2qePqt_azBSvBqxZxp=HqR_P==60R0ra+d0Zg@mail.gmail.com
Whole thread Raw
In response to Re: Logical Replication of sequences  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: Logical Replication of sequences
List pgsql-hackers
Please find a few comments on 003 patch (seqsync_error_count)

1)
+ /*
+ * Report the worker failed during either sequence synchronization or
+ * table synchronization or apply.
+ */

Shall we tweak it slightly to:
Report the worker failed during sequence synchronization, table
synchronization, or apply.

2)

+ SELECT count(1) = 1 FROM pg_stat_subscription_stats
+ WHERE subname = '$sub_name' and seq_sync_error_count > 0 and
sync_error_count > 0
  ])
    or die
    qq(Timed out while waiting for tablesync errors for subscription
'$sub_name');

Since we are checking both table-sync and seq-sync errors here, we
shall update the failure-message.

3)
+ # Change the sequence start value on the subscriber so that it
doesn't error out.
+ $node_subscriber->safe_psql($db,
+ qq(ALTER SEQUENCE $sequence_name INCREMENT 1));

Please mention in comment 'Change the sequence start value to default....'.
Otherwise it is not clear why changing to 1 is helping here as the
previous creation of seq on pub did not mention any 'INCREMENT' value
at all.

4)

- # Wait for initial tablesync to finish.
+ # Wait for initial sync to finish.
  $node_subscriber->poll_query_until(
  $db,
  qq[
- SELECT count(1) = 1 FROM pg_subscription_rel
- WHERE srrelid = '$table_name'::regclass AND srsubstate in ('r', 's')
+ SELECT count(1) = 2 FROM pg_subscription_rel
+ WHERE srrelid IN ('$table_name'::regclass,
'$sequence_name'::regclass) AND srsubstate in ('r', 's')
  ])
    or die
    qq(Timed out while waiting for subscriber to synchronize data for
table '$table_name'.);


a) Will it be better to separate the 2 queries as the table-sync can
be 'r' and 's', while seq-sync has to be 'r'.

b) If we plan to keep the same as above, the failure-message needs to
be changed as it mentions only table.

thanks
Shveta



pgsql-hackers by date:

Previous
From: Chao Li
Date:
Subject: Re: [PATCH] Add pretty formatting to pg_get_triggerdef
Next
From: David Rowley
Date:
Subject: Re: Teaching planner to short-circuit empty UNION/EXCEPT/INTERSECT inputs