| From: | Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com> |
|---|---|
| To: | Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com> |
| Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: server log inflates due to pg_logical_slot_peek_changes/pg_logical_slot_get_changes calls |
| Date: | 2023-03-20 11:18:20 |
| Message-ID: | CANm22Cg6daAozpAOMguGkoG5mhzzwf9CFoPXgek6e8tod2LSww@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Thanks, Ashutosh for the reply.
I think those messages are useful when debugging logical replication
> problems (imagine missing transaction or inconsistent data between
> publisher and subscriber). I don't think pg_logical_slot_get_changes()
> or pg_logical_slot_peek_changes() are expected to be called frequently
> in a loop.
Yeah right. But can you please shed some light on when these functions
should be called, or are they used only for testing purposes?
Instead you should open a replication connection to
> continue to receive logical changes ... forever.
>
Yes, this is what I have decided to resort to now.
Why do you need to call pg_logical_slot_peek_changes() and
> pg_logical_slot_get_changes() frequently?
>
I was just playing around to do something for logical replication and
thought
of doing this quick test where every time interval I read using
pg_logical_slot_peek_changes(), make sure to consume them to a consistent
state, and only then use pg_logical_slot_get_changes() to advance the slot.
Regards,
Jeevan Ladhe
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tomas Vondra | 2023-03-20 11:43:04 | Re: logical decoding and replication of sequences, take 2 |
| Previous Message | Amit Kapila | 2023-03-20 11:00:56 | Re: logical decoding and replication of sequences, take 2 |