Re: JDBC: logical replication and LSN feedback

From: Yason TR <tryasontr(at)gmail(dot)com>
To: Dave Cramer <pg(at)fastcrypt(dot)com>
Cc: List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: JDBC: logical replication and LSN feedback
Date: 2017-09-21 15:31:43
Message-ID: CANcxKGKn6Yt=0iZgTn80=GgsZE1dpg4+XM9v1nxDaELa-SCvXA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi Dave,

I am currently on version 9.5.8.

About setAppliedLSN vs. setFlushedLSN: I'll try to find out which one
is for logical.

Thank you. Kind regards,

Yason TR

On Thu, Sep 21, 2017 at 5:28 PM, Dave Cramer <pg(at)fastcrypt(dot)com> wrote:
>
>
>
>
> On 21 September 2017 at 06:50, Yason TR <tryasontr(at)gmail(dot)com> wrote:
>>
>> Hi,
>>
>> This is a follow-up from my previous question
>>
>> (https://www.postgresql.org/message-id/trinity-903b9111-dde7-4901-8130-86924336c456-1505912478894%403c-app-mailcom-bs15)
>>
>> I created a git to guide my question, see
>> https://github.com/yasontr/pg-jdbc-logical-decoding.
>>
>> Please follow the install steps on this page. After this, you can run
>> the application with Maven. This application listens to a replication
>> slot. See
>> https://github.com/yasontr/pg-jdbc-logical-decoding/blob/master/src/main/java/yasontr/pg_jdbc_logical_decoding/Main.java
>> for the code of the application.
>>
>> The problem I am seeing can be reproduced as following:
>>
>> 1) start the application
>> 2) insert a dummy row to the test table: insert into test(key, value)
>> values (1, 'test');
>> 3) now you see in the console:
>>
>> event:
>> {"change":[{"kind":"insert","schema":"public","table":"test","columnnames":["key","value"],"columntypes":["int4","text"],"columnvalues":[1,"test"]}]}
>> last received LSN: LSN{1A/AD2EEB0}
>>
>> 4) close the application
>> 5) start the application again
>> 6) now you see again the same event again in the console:
>>
>> event:
>> {"change":[{"kind":"insert","schema":"public","table":"test","columnnames":["key","value"],"columntypes":["int4","text"],"columnvalues":[1,"test"]}]}
>> last received LSN: LSN{1A/AD2EEB0}
>>
>> As you can see in the code, I am confirming the event with its LSN:
>>
>> stream.setAppliedLSN(stream.getLastReceiveLSN());
>> stream.setFlushedLSN(stream.getLastReceiveLSN());
>> stream.forceUpdateStatus();
>
>
> Pretty sure you only need one of them. I have to check again which one. One
> if for binary replication and the other is for logical.
>
> as for why you are getting the event twice. I don't know but am equally
> interested in finding out why.
>
> What version of postgres is this on ?
>
>
> Dave Cramer
>
> davec(at)postgresintl(dot)com
> www.postgresintl.com

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Vladimir Sitnikov 2017-09-21 16:05:53 Re: Reading and writing off-heap data
Previous Message Dave Cramer 2017-09-21 15:31:23 Re: Reading and writing off-heap data