Обсуждение: [HACKERS] Logical replication origin tracking fix
Hi, while discussing with Craig issues around restarting logical replication stream related to the patch he posted [1], I realized that we track wrong origin LSN in the logical replication apply. We currently track commit_lsn which is *start* of commit record, what we need to track is end_lsn which is *end* of commit record otherwise we might request transaction that was already replayed if the subscription instance has crashed right after commit. Attached patch fixes that. [1] https://www.postgresql.org/message-id/CAMsr+YGFvikx-U_mHQ0mAzTarqvCpwzvsPKv=7MfP9scDrMPjg@mail.gmail.com -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
On 10/03/17 05:59, Petr Jelinek wrote: > Hi, > > while discussing with Craig issues around restarting logical replication > stream related to the patch he posted [1], I realized that we track > wrong origin LSN in the logical replication apply. > > We currently track commit_lsn which is *start* of commit record, what we > need to track is end_lsn which is *end* of commit record otherwise we > might request transaction that was already replayed if the subscription > instance has crashed right after commit. > > Attached patch fixes that. > Rebase after table copy patch got committed. -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
On 3/24/17 10:48, Petr Jelinek wrote: > On 10/03/17 05:59, Petr Jelinek wrote: >> while discussing with Craig issues around restarting logical replication >> stream related to the patch he posted [1], I realized that we track >> wrong origin LSN in the logical replication apply. >> >> We currently track commit_lsn which is *start* of commit record, what we >> need to track is end_lsn which is *end* of commit record otherwise we >> might request transaction that was already replayed if the subscription >> instance has crashed right after commit. >> >> Attached patch fixes that. >> > > Rebase after table copy patch got committed. committed -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services