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

From Hayato Kuroda (Fujitsu)
Subject RE: Logical Replication of sequences
Date
Msg-id OSCPR01MB149665B4CF2FC05AB8176B074F501A@OSCPR01MB14966.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Re: Logical Replication of sequences  (vignesh C <vignesh21@gmail.com>)
Responses Re: Logical Replication of sequences
List pgsql-hackers
Dear Vignesh,

Thanks for updating the patch. Few comments:
01.
```
    /* Find the leader apply worker and signal it. */
    logicalrep_worker_wakeup(MyLogicalRepWorker->subid, InvalidOid);
```

Sequencesync worker does not need to send a signal to the apply worker.
Should we skip in the case?
Per my understanding, the signal is being used to set the status to STATE_READY.

02.
```
    if (worker)
        worker->last_seqsync_start_time = 0;

    LWLockRelease(LogicalRepWorkerLock);
```

I feel we can release LWLock first then update last_seqsync_start_time.

03.
Sequencesync worker cannot update its GUC parameters because ProcessConfigFile()
is not called. How about checking the signal at the end of batch loop?

04.
```
            while (search_pos < total_seqs)
            {
                LogicalRepSequenceInfo *candidate_seq = lfirst(list_nth_cell(sequences_to_copy, search_pos));

                if (!strcmp(candidate_seq->nspname, nspname) &&
                    !strcmp(candidate_seq->seqname, seqname))
                {
                    seqinfo = candidate_seq;
                    search_pos++;
                    break;
                }

                search_pos++;
            }
```

It looks like that if the entry in sequences_to_copy is skipped, it won't be
referred anymore. I feel this is method is bit dangerous, because ordering of
the list may be different with the returned tuples from the publisher. Nodes may
use the different collations.

Best regards,
Hayato Kuroda
FUJITSU LIMITED


pgsql-hackers by date:

Previous
From: Bertrand Drouvot
Date:
Subject: Re: Get rid of pgstat_count_backend_io_op*() functions
Next
From: Dean Rasheed
Date:
Subject: Re: Refactoring: Use soft error reporting for *_opt_error functions