RE: Logical Replication of sequences
От | Hayato Kuroda (Fujitsu) |
---|---|
Тема | RE: Logical Replication of sequences |
Дата | |
Msg-id | OSCPR01MB149665B4CF2FC05AB8176B074F501A@OSCPR01MB14966.jpnprd01.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: Logical Replication of sequences (vignesh C <vignesh21@gmail.com>) |
Ответы |
Re: Logical Replication of sequences
|
Список | 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 по дате отправления: